home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173adoc.zip / RBBSDOC2.ASC < prev   
Text File  |  1990-08-26  |  358KB  |  6,894 lines

  1.  
  2.  
  3.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                   12-10
  4.  
  5.  
  6.          DKAAAA.ZIP is ready for download.
  7.          DKAAAAa.ZIP is ready for download.
  8.          DKAAAAb.ZIP is read for download.
  9.  
  10.     As each file is downloaded successfully it  is removed from the list and is
  11.     no longer displayed to the user as ready for download.
  12.  
  13.     12.6.2 The "Library" Subsystem and PC-SIG's CD-ROM
  14.     --------------------------------------------------
  15.     The CD-ROM published by PC-SIG consists of a DOS subdirectory for each 360K
  16.     diskette in the PC-SIG  library. Sometimes the disk contains all  the files
  17.     already in the ARC format  other times they just contain a group  of files.
  18.     The key  here is  the A)rchive  function.   The resulting  file to  be made
  19.     available for download will NEVER be greater than 360k.   This is important
  20.     since a caller may only have a floppy based  system and could not capture a
  21.     file any larger than a 360k floppy can contain.
  22.  
  23.     The  PC-SIG's CD-ROM  creates the  problem of  listing both  the individual
  24.     files contained  on each diskette as  well as a summary  description of the
  25.     individual disks.   This can be solved by listing each of the 18,000+ files
  26.     in  the MASTER.CDR using positions 43-76 for the description, positions 77-
  27.     79  for the disk  drive, and positions  80-82 for the  valid categories for
  28.     downloading.  These are contained in the file specified by CONFIG parameter
  29.     217.
  30.  
  31.     MASTER.CDR might also  contain a list of  names of the files  that would be
  32.     created  by the  A)rchive  function.   This  allows the  caller  to scan  a
  33.     category (i.e. category 200)  for disk titles only.  Note that the files do
  34.     not exist until the user  uses the A)rchive function.  A SysOp who did  not
  35.     wish to allow individual file downloads might only include these entries in
  36.     the MASTER.CDR rather than the other 18,000 entries.
  37.  
  38.     The directory for the PC-SIG CD-ROM is over 1.5 megabytes in length and can
  39.     take up to 10 minutes to search completely (when using a PC at 4.77 MHz).
  40.  
  41.     If the SysOp is using FMS, it is recommended that the category file for the
  42.     normal FMS directory and the category file for the Library FMS directory be
  43.     the same (PC-SIG has 27 different categories for its files).
  44.  
  45.     12.7 Creating the Personal Files Directory
  46.     ------------------------------------------
  47.     RBBS-PC's  "personal" file  support  is analogous  to RBBS-PC's  support of
  48.     "personal"  messages in  that  these files  are  specially addressed  to  a
  49.     specific  caller  or group  of callers  based on  security.   Personal file
  50.     downloads differ from the general download in three major ways:
  51.  
  52.       1) the time limit check is bypassed in personal downloads, meaning that a
  53.          qualifying caller can download a file regardless of time left.
  54.  
  55.       2) only  files  explicitly  listed  in  the  personal  directory  can  be
  56.          downloaded.  Normally files to be downloaded will be looked for on the
  57.          disk(s) where  files are  available for downloading  whether they  are
  58.          listed in a directory or not.
  59.  
  60.       3) only callers  with  matching user  record or  sufficient security  can
  61.          download a  file.  Normally  any caller with security  enough to issue
  62.          the download command can download a file.
  63.  
  64.  
  65.  
  66.  
  67.     RBBS-PC's FILE MANAGEMENT SUBSYSTEM                                   12-11
  68.  
  69.  
  70.     Personal  files provide  a  way that  files  can be  delivered to  specific
  71.     individuals.   As  an example,  a  vendor's support  bulletin  board for  a
  72.     software  product might  make  the  upgrade  downloadable  only  by  paying
  73.     customers.    A  credit  reporting  corporation  can  make  credit  reports
  74.     electronically available  only to the people  who order them.   Or, a SysOp
  75.     can make a file privately available to only one caller.
  76.  
  77.     One of  the most  useful applications  for  personal downloads  is to  make
  78.     certain files available  regardless of time remaining.   Previously, SysOps
  79.     had to  increase the security of  callers or set artificially  high session
  80.     limits  just to make certain large files  available.  By putting these file
  81.     names in the personal directory and limited by security  level, these files
  82.     can be made available regardless of how  little time is left.  For example,
  83.     the large  files comprising RBBS-PC can be made downloadable to all callers
  84.     even though they are limited to 30 minutes.
  85.  
  86.     Access to personal  files can be limited in two ways.  First, the files can
  87.     be downloaded  only by callers  which have a  matching value in  their user
  88.     record.   For example, files can be limited  by name (any field in the user
  89.     record can be  selected).  Alternatively files  can be limited  by security
  90.     level,  meaning that  a file  can  be downloaded  by any  person with  that
  91.     security level or higher.  File access based on security level can also  be
  92.     accomplished  using the standard RBBS-PC file security mechanism, but to do
  93.     so  places the caller's under  the standard RBBS-PC  constraints of maximum
  94.     time per session/day.
  95.  
  96.     Using the "P)ersonal files" command in the files section, a caller is asked
  97.     what  files the caller wants to download.   The only files available to the
  98.     caller  for downloading  are those  explicitly listed  as belonging  to the
  99.     caller, unlike the general  download command which will look  for any named
  100.     file on the disk.  The caller can ask to List the files available.  Callers
  101.     will see only those belonging to them.
  102.  
  103.     There  is  a special  option  to  download all  and  only  the "new"  files
  104.     specifically addressed to the user by matching a field in the caller's user
  105.     record.  RBBS-PC keeps track of  whether the caller has ever downloaded the
  106.     personal file.  When listing, new personal files are marked  with an "*" in
  107.     front of their names (they are "tagged").  Selecting the new files starts a
  108.     multi-file  download for all  and only  the personal  files the  caller has
  109.     never successfully downloaded.
  110.  
  111.     Files  you want  downloaded  ONLY through  the  personal file  features  of
  112.     RBBS-PC should  be put  in their  own subdirectory  as specified  in CONFIG
  113.     parameter 142.   If you put  the personal files in  a download subdirectory
  114.     they  would be available then to anyone who  could name them.  RBBS-PC will
  115.     search the  download areas for a  personal file if  it is not found  in the
  116.     subdirectory specified in parameter 142.
  117.  
  118.     Second,  in  the same  place as  the personal  files  themselves, put  in a
  119.     special personal directory  with name  specified in  CONFIG parameter  143.
  120.     This directory is the same format  as the general file directories of RBBS-
  121.     PC.  The format is as follows:
  122.  
  123.      Default   Field
  124.     Positions  Length    Description of Field
  125.  
  126.      1 - 12      12     The first 12 characters of an entry have the file name,
  127.                         with no internal spaces.
  128.  
  129.  
  130.  
  131.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                   12-12
  132.  
  133.  
  134.     13 - 73  Variable   The next group of characters can have anything in them.
  135.                         This will be  displayed to  the caller who  asks for  a
  136.                         listing,  along with  the  file name  in  the first  12
  137.                         columns.   The length  of this  group is  21 characters
  138.                         plus the length of  the upload description specified in
  139.                         CONFIG (40-46, defaults to 40).  The default  length of
  140.                         this field is 61 characters.
  141.  
  142.     74 -104  Variable   The  next  group of  characters  are  what is  used  to
  143.                         identify the file as "belonging" to the caller and must
  144.                         match  a field in the user record.  In CONFIG parameter
  145.                         43 and  parameter 44, the SysOp  specifies the position
  146.                         in the user record to use and how many characters.  The
  147.                         default is to begin  in column 1 and use  31 characters
  148.                         for the caller's name, but any field in the user record
  149.                         can be used.  Optionally, a security can be  entered in
  150.                         this last field to limit the file based on the security
  151.                         level of the  caller.   To use security  rather than  a
  152.                         match on the  user record,  simply put a  blank as  the
  153.                         first character in the  field, followed by the security
  154.                         level.
  155.  
  156.     105            1    The last character must  be an "*" to signify  that the
  157.                         file has never been  downloaded or an exclamation point
  158.                         if ever downloaded.
  159.  
  160.     This personal directory  works very  much like the  File Management  System
  161.     shared directory,  using a field  in the  user record as  the category  and
  162.     limiting  callers to their one category, or  limiting the file to the group
  163.     of  caller's with the minimum required security.  The personal directory is
  164.     fixed length and read in reverse from bottom to top.
  165.  
  166.     After setting up  or modifying the personal  directory, you use the  CONFIG
  167.     utility  parameter  187 to  check whether  the  personal directory  has the
  168.     proper format.
  169.  
  170.     The personal directory can be created by a text editor  (i.e. EDLIN) but be
  171.     sure to put in the "*" in the last column when creating a new entry so that
  172.     the file  will be tagged  as new.   Also be sure  to make each  entry fixed
  173.     length.   If the user's identity does  not fill out the  length of the last
  174.     field, be sure to pad the record with blanks out to the full length.
  175.  
  176.     When setting up  a personal  file directory there  are seven  configuration
  177.     options peculiar to personal files:
  178.  
  179.     CONFIG           Description
  180.     parameter 43      what part of the user record used to identify files as
  181.     parameter 44      belonging to the user (beginning column and length),
  182.     parameter 143     the name of the personal directory,
  183.     parameter 142     the drive and path where the personal files and personal
  184.                       directory are stored,
  185.     parameter 144     the protocol that must be used downloading,
  186.     parameter 147     whether the files downloaded are to be concatenated, and
  187.     parameter 188     the CONFIG utility to check the structure of the personal
  188.                       directory to make sure it is in the properly format.
  189.  
  190.     Parameter 147 and parameter 187 require some explanation of how they  might
  191.     be  used.   Limiting  the  caller to  a  required protocol  to  use  is not
  192.     something one would generally do.  But, for special purpose downloads, like
  193.  
  194.  
  195.  
  196.     RBBS-PC's FILE MANAGEMENT SUBSYSTEM                                   12-13
  197.  
  198.  
  199.     downloading to  a printer, one  might want to  require ASCII,  for example.
  200.     Or, if  all callers are to  use the same  communications package or  only a
  201.     particular protocol is efficient, you can specify what callers must use.
  202.  
  203.     Concatenating  files  means  that when  multiple  files  are specified  for
  204.     downloading, the files are sent  continuously in one stream of data  rather
  205.     than individually  as separate files.  In  effect, the files are physically
  206.     combined  at the  time  of downloading.    All messages  between  files are
  207.     suppressed -  the only messages  that appear to  the caller are  those that
  208.     normally occur when the first  file transfer starts and when the  last file
  209.     transfer  ends.    Concatenation  is  currently  supported  only  for ASCII
  210.     downloads.
  211.  
  212.     An example  of a  situation that might  use this  feature of  RBBS-PC is  a
  213.     business  that generates short reports for clients.   Their clients want to
  214.     call in remotely to get time-critical reports and print them right in their
  215.     office  on pre-formatted paper.  Each report  is a separate file on RBBS-PC
  216.     with all the necessary printer commands already included in each file.
  217.  
  218.     A SysOp might  set up RBBS-PC such  that the main menu was  restructured to
  219.     make the  P)ersonal files function be  P)rint reports to reflect  the  more
  220.     specialized nature  of the board.   Callers  to this board  would call  in,
  221.     identify themselves, and select P)rint reports from the main menu.  Callers
  222.     could use  L)ist to see  what is  available if  they are  looking for  some
  223.     report in particular;  just select all new reports; or ask for a particular
  224.     report if they must have it immediately.
  225.  
  226.     In the last two cases, RBBS-PC would notify the caller to set up to receive
  227.     and  press [ENTER]  when ready.   The  pre-formatted reports  with embedded
  228.     printer  control  sequences  would stream  out  onto  the  paper (including
  229.     formatting like bold  or underline) positioning the  text to fit  in boxes.
  230.     The paper  is automatically advanced as  needed.  When done,  RBBS-PC beeps
  231.     the user,  who then  turns the  "save to printer"  feature off  of whatever
  232.     communications package is being used.
  233.  
  234.     To set up this application,  the personal file options would  be configured
  235.     to use  the caller's id  (e.g. account  number).  The  files and  directory
  236.     would be  put in a special subdirectory not shared with anything else.  The
  237.     CONFIG  parameters would be  set to  specify that  caller's must  use ASCII
  238.     ("A") as their protocol and that multi-file downloads will be concatenated.
  239.  
  240.     Another example is  that of an electronic job placement service that wanted
  241.     to limit non-subscribers to a  security level 5 with 10 minutes.   However,
  242.     they also  want non-subscribes to be  able to download a  file of potential
  243.     employment opportunities that may take more than 10 minutes.  The following
  244.     entries would be put into PRIV.DIR:
  245.  
  246.     JOBSFORU.ARC   282888  07-14-87  List of job opportunities you might want 5
  247.               /|\                                                           /|\
  248.               12                                                            74
  249.  
  250.     Each record  is padded with blanks  so that 29 blank  characters follow the
  251.     security  level, followed  by  an '*'.     The  '*' is  not  shown in  this
  252.     documentation since it is in a column too far to the right.
  253.  
  254.  
  255.  
  256.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                   12-14
  257.  
  258.  
  259.     12.8 Automatically Checking & Converting Uploaded Files
  260.     -------------------------------------------------------
  261.  
  262.     Verifying the Integrity of a File
  263.     ---------------------------------
  264.     RBBS-PC's  on-going commitment  to  providing SysOps  with  the ability  to
  265.     protect themselves and their callers is reflected in precisely this kind of
  266.     feature.  When  a file  is uploaded, RBBS-PC  will look for  a file  called
  267.     T<ext>.BAT (where <ext> is the characters that make up the extension of the
  268.     uploaded  file).   RBBS-PC  looks  for  this file  on  the  drive and  path
  269.     specified in CONFIG parameter 105.  If this file exits,  RBBS-PC will SHELL
  270.     to either:
  271.  
  272.          a.)  the program specified in the file (if it only has one line) or
  273.          b.)  to the .BAT file itself.
  274.  
  275.     In this way a SysOp may install whatever processing is desired after a file
  276.     has been uploaded.
  277.  
  278.     If the BAT file contains exactly 1 line, RBBS-PC will shell to the contents
  279.     of the bat file, passing on the command line the two parameters:
  280.  
  281.          a.)  the name of the file upload (first) and
  282.          b.)  the name of the file to write the results to (second)
  283.  
  284.     If the BAT file contains more than one line, RBBS-PC will  SHELL to the BAT
  285.     file itself,  passing
  286.  
  287.          a.)  the name of the file upload for "[1]" and
  288.          b.)  the name of the file to write the results to for "[2]"
  289.  
  290.     as the first and second parameters, respectively.
  291.  
  292.     RBBS-PC will  consider the upload  to have failed  and delete  the uploaded
  293.     file, if  the file  to which the  results are  to be  written has a  length
  294.     greater than 2 bytes.  The BAT file should either
  295.  
  296.          a.) not write a result file or
  297.          b.) leave an empty one if the upload is okay.
  298.  
  299.     If the file that was uploaded is not okay, the  external application should
  300.     write out some error message more than 2 bytes long.
  301.  
  302.     A typical use for this feature of RBBS-PC is to test the compression of the
  303.     uploaded  file and  pipe the results  to a  text scanner that  looks for an
  304.     error string and redirects the output to a file if an error is found.   For
  305.     example  if files  that are  uploaded with  the extension  .ZIP were  to be
  306.     tested, a SysOp might create the file TZIP.BAT
  307.  
  308.              PKUNZIP -T [1] | FGREP "error in a" > [2]
  309.  
  310.     An alternative implementation is:
  311.  
  312.              PKUNZIP -T %1
  313.              IF ERRORLEVEL 1 ECHO BAD UPLOAD > %2
  314.              SETERROR 0
  315.  
  316.     Under versions  of QuickBASIC prior to  4.5, programs that  reset the error
  317.     level cause illegal function call 5 upon return from the  SHELL.  Therefore
  318.  
  319.  
  320.  
  321.     RBBS-PC's FILE MANAGEMENT SUBSYSTEM                                   12-15
  322.  
  323.  
  324.     it is necessary to  run a utility to reset the error level back to 0 before
  325.     going back to RBBS-PC.  This is what the SETERROR.EXE file does.
  326.  
  327.     The  recommended procedure is to  use PKUNZIP, check  errorlevel, and reset
  328.     error level  to 0.  PKUNZIP  outs somewhat variable strings  when different
  329.     errors occur, making a filter based on text more difficult to implement.
  330.  
  331.     Converting Uploads
  332.     ------------------
  333.     RBBS-PC can  be configured by the SysOp to cause uploads with extension <u-
  334.     ext> to  be converted to  the default extension  <d-ext>.  To do  this, the
  335.     SysOp  must put  a  file named  C<u-ext><d-ext>.BAT on  the drive  and path
  336.     specified in  CONFIG parameter 105.  If the file exists, RBBS-PC will SHELL
  337.     to it.
  338.  
  339.     If the SysOp wants all .ARC files uploaded converted to a .ZIP file, create
  340.     a file CARCZIP.BAT in  the subdirectory specified in CONFIG  parameter 105.
  341.     To  convert  .PAK files  to  .ZIP, create  the  file  CPAKZIP.BAT.   Sample
  342.     conversion batch files are included on the RBBS-PC distribution diskettes.
  343.  
  344.     12.9 Fast File Search
  345.     ---------------------
  346.     RBBS-PC 17.3 includes  an enhanced file-search  capability for uploads  and
  347.     downloads.  This enhancement has two advantages:
  348.  
  349.     (a)  File searches are much faster.  In the case of very slow devices like
  350.          a CD-ROM, this can be the  difference between sub-second response and
  351.          a 45 second response.   File searches are now virtually instantaneous.
  352.  
  353.     (b)  Files not stored on this system can trigger macros.   This allows
  354.          requests for files stored elsewhere, either off line on backups, or on
  355.          other cooperating systems, to trigger later processing.
  356.  
  357.     The basis  for the fast file search is a file, configuration parameter 267,
  358.     which is  a sorted  list  of file  names available  for  downloading.   The
  359.     default name is FIDX.DEF.
  360.  
  361.     The format of this file is:
  362.  
  363.     columns 1-12:  file name
  364.     columns 13-16: location index (1, 2, 3, ...)
  365.     columns 17-18: carriage return line feed.
  366.  
  367.     All data is stored as  character data and the file is editable.    The file
  368.     names must  be stored with no  internal spaces and a  period separating the
  369.     prefix from the extension.    The list of file names MUST BE SORTED BY FILE
  370.     NAME in order for the fast file search to work.
  371.  
  372.     The location  index is the record number (line number) of the locator file,
  373.     whose default name is LIDX.DEF, and has the following layout:
  374.  
  375.     columns 1-63:  location of file
  376.     column  64:    any character.  MAKEFIDX puts in a period.
  377.     columns 65-66: carriage return line feed.
  378.  
  379.     This  file  is all  character  data and  is  editable.     Essentially, the
  380.     location index points to a record in the location  file.   E.g. if FIDX.DEF
  381.     has
  382.  
  383.  
  384.  
  385.  
  386.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                   12-16
  387.  
  388.  
  389.     RBBS-BAS.ZIP   2
  390.     HARPIE.ARC     3
  391.  
  392.     and LIDX.DEF has
  393.  
  394.     C:\DOWN1\
  395.     C:\DOWN2\
  396.     C:\UP\
  397.  
  398.     Then  RBBS-BAS.ZIP  is  located  in  directory  C:\DOWN2 (2nd  record)  and
  399.     HARPIE.ARC is located in C:\UP (3rd record).
  400.  
  401.     The  location field should  be a drive/path  terminating with a  "\" if any
  402.     path is given, and file must be filled with blanks through column 63 if the
  403.     path is shorter.   You must put some  character in column 64. Many  editors
  404.     delete  trailing blanks,  so you  should probably  put in  a non-blank.   A
  405.     period is a suitable choice.
  406.  
  407.     RBBS-PC will  use a binary search  on the first 12  characters in FIDX.DEF.
  408.     This binary search can be significantly speeded by provided "tabs" for this
  409.     file, indicating the record at which the first file is that begins with the
  410.     symbols "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".    This is  like the "tabs"
  411.     you see on dictionaries, so you can directly turn to the B's, for example.
  412.     A tab file has the same prefix as the file name file, except that it adds a
  413.     "T".  For "FIDX.DEF",  the tab file  would be "FIDXT.DEF".    RBBS-PC  will
  414.     automatically detect and  use a tab  file if available.     The tab has  72
  415.     characters in it.   Each 2 bytes represents a binary integer whose value is
  416.     the record  number in FIDX.DEF where the first file occurs that begins with
  417.     the  respective symbols above.  Thus bytes  3-4 show where files begin with
  418.     "1" and bytes 69-70 where files begin with "Y".
  419.  
  420.     Two utilities  with source code are  provided for setting up  the fast file
  421.     searches.   The source, for compiling under QB 4.5, is included.
  422.  
  423.     MAKEFIDX will create both  the file name  list (FIDX.DEF) and the  location
  424.     file (LIDX.DEF), from a list of directories (see MAKEFIDX.CFG) or a list of
  425.     file names, or both.
  426.  
  427.     You must  next sort FIDX.DEF  by file name.   A good shareware  utility for
  428.     this is QSORT (QSORT FIDX.DEF /1:12).
  429.  
  430.     MAKETABS will  create a  tab file  (FIDXT.DEF) from  the  sorted file  list
  431.     FIDX.DEF.
  432.  
  433.     A sample  batch file for recreating  a fast file system  is MAKEFFS.BAT. It
  434.     uses   MAKEFIDX.EXE,  QSORT.EXE,   MAKETABS.EXE,  and   configuration  file
  435.     MAKEFIDX.KG.     You need  only edit  MAKEFIDX.KG  to change  the filespecs
  436.     (/FileSpec=) to  match where your files  are, and where to  write the index
  437.     files.
  438.  
  439.     Reconfiguring to Take Maximal Advantage of Fast File Searches
  440.     -------------------------------------------------------------
  441.     The fast file search is virtually instantaneous on an 8088 with a  tab file
  442.     for 5000 file entries.   The savings on wear and tear on the hard disk  can
  443.     be very  significant as well.    And the time  it takes to set  up the fast
  444.     file  search is only a  few minutes.  Most SysOps,  therefore, will want to
  445.     implement fast file searching, whether or  not they have a slow device like
  446.     a CD-ROM.
  447.  
  448.  
  449.  
  450.  
  451.     RBBS-PC's FILE MANAGEMENT SUBSYSTEM                                   12-17
  452.  
  453.  
  454.     RBBS-PC will first search through the drive/paths specified in config to be
  455.     available  for downloading, as it always did.    Files not found there will
  456.     then be searched using the fast  file search system. The way the  fast file
  457.     search works  is that a file  found in its list  is looked for  only in the
  458.     designated location.  Nothing else is searched.
  459.  
  460.     The  optimal way  to implement fast  file searching  is to  reconfigure the
  461.     drive/paths available for downloading down to at most the upload directory,
  462.     and let the fast file search handle everything else.   That way, files will
  463.     be searched first  in the upload area,  and those not  found at first  will
  464.     then be searched using the fast file search system. Note that every file in
  465.     the fast  file search list  is considered to  be available  for downloading
  466.     whether or not its drive/path  is listed in the configuration program  as a
  467.     downloadable area.   Note  that  you can  have  separate fast  file  search
  468.     systems  available for each  sub-board.    You can  also use the  fast file
  469.     search  for  common  files  and  have a  separate  download  area  for  the
  470.     sub-boards. Note that whenever  you relocate files, you must  re-create the
  471.     fast file search system.   This is not hard since it  takes little time and
  472.     can be automated.
  473.  
  474.     Macros with the Fast File Search
  475.     --------------------------------
  476.     The location file for the  FFS (LIDX.DEF) can have in it "M! <macro file>",
  477.     where "<macro  file>" is the  name of  a macro, instead  of a drive/path.
  478.     RBBS-PC  will  then  execute  the  macro.     Thus,  you  can  have special
  479.     processing for classes of files, perhaps to
  480.  
  481.     o    advise that the upload is not wanted
  482.  
  483.     o    tell the caller on what other BBS the file can be found
  484.  
  485.     RBBS-PC will put a "U", "D", or "V" in work variable 1 depending on whether
  486.     the file request is to upload, download, or view, so that you can customize
  487.     your macro for the  situation.   This if you want to display a message only
  488.     on an upload, you could have UNWANT.IMC with
  489.  
  490.          0
  491.          {ON [1]
  492.          {==U
  493.          {*B
  494.  
  495.          The file {C1{FI{C0 is {C2NOT WANTED{C0 here.
  496.          Please do not upload it.
  497.  
  498.          {END
  499.          {END ON
  500.  
  501.     RBBS-PC regards the  file as not found when a macro  is executed.  However,
  502.     you can inside the macro  use the macro command "LO" to set a location that
  503.     RBBS-PC will use to look for  the file, the same as if the  drive/path were
  504.     given  in LIDX.DEF.    Thus, you can  use macros for files  that really are
  505.     present.    For example, if RBBS-EXE.ZIP is downloaded, the file is located
  506.     in D:\D1,  and the entry RBBS-EXE.ZIP in FIDX.DEF is  mapped to a record in
  507.     LIDX.DEF with the entry "M!  C:\RBBS\DWNRBBS.IMC", then the following macro
  508.     displays a special message but still causes the file to be found:
  509.  
  510.          0
  511.          {ON [1]
  512.          {==D
  513.  
  514.  
  515.  
  516.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                   12-18
  517.  
  518.  
  519.          {*B
  520.  
  521.          Congratulations.  You are about to download the best BBS!
  522.          Call me voice at 703-978-4339 if you need any help.
  523.  
  524.          {END
  525.          {LO D:\D1\
  526.          {END ON
  527.  
  528.  
  529.  
  530.     SETTING UP ".BAT" FILES FOR RBBS-PC                                    13-1
  531.  
  532.  
  533.     13. SETTING UP ".BAT" FILES FOR RBBS-PC
  534.     ---------------------------------------
  535.     In order for you to take  advantage of all RBBS-PC functions, you  must run
  536.     RBBS-PC  via a  .BAT file.   When  processing events  such as  DOORS, daily
  537.     maintenance and  Remote DOS access, RBBS-PC  exits to DOS, and  expects the
  538.     .BAT file that invoked it to handle these events.
  539.  
  540.     13.1 RBBS-PC's Startup Batch File
  541.     ---------------------------------
  542.     The batch  file (RBBS.BAT) that comes  with RBBS-PC is capable  of handling
  543.     these events, but in order to make  full use of it, you must understand the
  544.     commands  in it.   RBBS-PC  stores the  name of this  batch file  in CONFIG
  545.     parameter 104.   This  example assumes you  have installed  RBBS-PC in  the
  546.     directory C:\RBBS.  Each line in the .BAT file is described below:
  547.  
  548.     COMMAND        DESCRIPTION
  549.     ECHO OFF       This tells DOS not to display each command as it executes.
  550.  
  551.     CLS            This clears the screen.
  552.  
  553.     C:             This  makes sure  that when  you start RBBS-PC,  the default
  554.                    drive is the one where RBBS-PC resides.
  555.  
  556.     IF %node%. == . SET node=1
  557.                    You should remove this  line from RBBS.BAT, and place  it in
  558.                    the  AUTOEXEC.BAT  for each  node.   Of  course,  change the
  559.                    number   to  correspond   to   the  node   number  in   each
  560.                    AUTOEXEC.BAT.     This  function   makes  use  of   the  DOS
  561.                    "environment variable"  concept.  From now on,  when you see
  562.                    %node%, substitute the node number.
  563.  
  564.     :START         This is a  "branch label" which  allows RBBS.BAT to  recycle
  565.                    continuously.
  566.  
  567.     CD C:\RBBS     This line  makes  sure  that when  you  start  RBBS-PC,  the
  568.                    default subdirectory is the one where RBBS-PC resides.
  569.  
  570.     IF EXIST C:\RBBS\NODE%node%\RBBS%node%TM.DEF ...
  571.           DEL C:\RBBS\NODE%node%\RBBS%node%TM.DEF
  572.                    This command  checks for  the DAILY  EVENT signal  file, and
  573.                    deletes it.  This  is a "cleanup" command, which  makes sure
  574.                    there are no old signal files on the disk.
  575.  
  576.     IF EXIST C:\RBBS\NODE%node%\RBBS%node%F1.DEF ...
  577.           DEL C:\RBBS\NODE%node%\RBBS%node%F1.DEF
  578.                    This command  checks  for the  SysOp EXIT  signal file,  and
  579.                    deletes it.  This is a another "cleanup" command.
  580.  
  581.     IF EXIST C:\RBBS\NODE%node%\RCTTY.BAT ...
  582.           DEL C:\RBBS\NODE%node%\RCTTY.BAT
  583.                    This command  checks for the  DOOR signal file,  and deletes
  584.                    it.   This  is a  another "cleanup" command.   The  path and
  585.                    filename  of  this  signal  file  can  be  set  with  CONFIG
  586.                    parameter 103.
  587.  
  588.     RBBS-PC %1     This  command actually runs RBBS-PC.   The %1  allows you to
  589.                    specify  options when  you  use  the  RBBS.BAT  file.    For
  590.                    example, if you enter "RBBS LOCAL", the "LOCAL" is passed to
  591.                    RBBS-PC, so you can run in local mode.
  592.  
  593.  
  594.  
  595.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    13-2
  596.  
  597.  
  598.     IF EXIST C:\RBBS\NODE%node%\RBBS%node%F1.DEF GOTO EXIT
  599.                    This command checks for  the SysOp EXIT signal file,  and if
  600.                    found, exits the .BAT file.   The SysOp EXIT signal  file is
  601.                    created whenever the SysOp presses F1 at the local console.
  602.  
  603.     IF EXIST C:\RBBS\NODE%node%\RBBS%node%TM.DEF RBBSTIME.BAT
  604.                    This  command checks for the DAILY EVENT signal file, and if
  605.                    found, runs the .BAT file RBBSTIME.BAT.  The daily event can
  606.                    contain  any maintenance  you  wish to  perform  on a  daily
  607.                    basis.  RBBS-PC will create the DAILY EVENT signal file at a
  608.                    the time specified in CONFIG parameter 261.
  609.  
  610.     IF EXIST C:\RBBS\NODE%node%\RCTTY.BAT C:\RBBS\NODE%node%\RCTTY.BAT
  611.                    This  command checks for the DOOR signal file, and if found,
  612.                    executes it.  The  DOOR signal file is created when a caller
  613.                    opens a DOOR, or the SysOp requests remote DOS operation.
  614.  
  615.     GOTO START     This command restarts RBBS-PC during  a "recycle."  The only
  616.                    way to stop RBBS-PC completely is to press F1.
  617.  
  618.     :EXIT          This is a  "branch label."   When RBBS.BAT  finds the  SysOp
  619.                    EXIT signal file,  it branches here, which  ends RBBS-PC and
  620.                    returns to DOS.
  621.  
  622.     For multi-node use, the command "RBBS-PC %1" must be changed to indicate to
  623.     RBBS-PC that you are running multiple nodes.  The revised command would be:
  624.  
  625.     RBBS-PC %node% RBBS%node%PC.DEF %1
  626.  
  627.     13.2 The Daily Event .BAT file
  628.     ------------------------------
  629.     CONFIG  option 261 allows you to specify a  time each day that RBBS-PC will
  630.     exit for daily  maintenance.  The  supplied RBBS.BAT  file can detect  this
  631.     event  (via the  RBBS?TM.DEF signal  file) and  process a  .BAT file.   The
  632.     contents  of the daily  event file can  contain whatever the  SysOp wishes:
  633.     Tape backup commands, message packing, file verification or virus checking.
  634.     Just make  sure that the daily event file re-invokes the RBBS.BAT file when
  635.     processing is complete, and RBBS-PC will resume after the maintenance.
  636.  
  637.  
  638.  
  639.     THE USE OF RBBS-PC "DOORS"                                             14-1
  640.  
  641.  
  642.     14. THE USE OF RBBS-PC "DOORS"
  643.     ------------------------------
  644.     A door is a program contained on the RBBS-PC machine which can be run by an
  645.     RBBS-PC caller.   This allows the  BBS user access to  functions other than
  646.     those provided by  RBBS-PC.  After the door terminates,  control returns to
  647.     RBBS-PC.
  648.  
  649.     The concept of doors  can be confusing and complicated,  but from RBBS-PC's
  650.     perspective, it is simple:
  651.  
  652.          When a caller requests a DOOR, RBBS-PC checks to see  if the door
  653.          exists.  If so, RBBS-PC will  create a DOOR signal file and exit.
  654.          It is the responsibility  of the invoking .BAT file  (see section
  655.          13) to  start the  door.   RBBS-PC will regain  control when  the
  656.          invoking .BAT file ends.
  657.  
  658.     With this  simplicity in mind, we  will now explain the  complex details of
  659.     door processing:
  660.  
  661.     As a potential  door installer, you should  first become familiar  with the
  662.     door program, WITHOUT RBBS-PC INVOLVEMENT!   Most door programs can also be
  663.     run directly from DOS.  Make sure the program works, and you understand  it
  664.     before you expect RBBS-PC to run it.
  665.  
  666.     Once you  understand the door  program, you  must set up  the interface  to
  667.     RBBS-PC.  A sample door is included with RBBS-PC.  The door (DOORTEST) does
  668.     nothing, but it does show you how the interface works.
  669.  
  670.     14.1 A Quick Start to Installing Doors
  671.     --------------------------------------
  672.     To install the door, follow these steps:
  673.  
  674.        - Create  the  door batch  file,  and place  it in  the  default RBBS-PC
  675.          directory  (DOORTEST.BAT  is an  example).    This  batch file  should
  676.          contain the commands needed to run the door, and then  return to DOS).
  677.          RBBS-PC will automatically restart after the door.
  678.  
  679.        - If you want  maximum control over  your door, create  an entry in  the
  680.          DOORS.DEF file (see section 14.3).  Without this  entry, the door will
  681.          still work,  but you will be able to control  more aspects of the door
  682.          interface with this control file
  683.  
  684.        - Edit the MENU5  file (including  the graphic and  color versions)  and
  685.          enter the name of your  door.  The door name must be IN  CAPS, and the
  686.          first word on a line.  The sample DOORTEST can be used as a guide.  If
  687.          the door name  is NOT in all MENU5 files, RBBS-PC will allow the SysOp
  688.          to  exit  the door,  but your  callers  will not  be  able to  use it.
  689.          RBBS-PC uses the MENU5 as a security measure.  If the door name is not
  690.          found in this file, callers are denied access to the door.
  691.  
  692.     14.2 The Major Problems with DOORS
  693.     ----------------------------------
  694.     The hard  fact about doors is  that most DOS application  programs that run
  695.     perfectly fine  locally will not  run correctly for  a remote caller.   The
  696.     general reason for this is  that, compared the UNIX  and even the old  CP/M
  697.     microcomputer  operating system, DOS has very limited support for access to
  698.     a computer from a remote site.   The primary general problem is getting the
  699.     application to  take its input from the communications port rather than the
  700.     keyboard  and  getting  the   application  to  write  its  output   to  the
  701.  
  702.  
  703.  
  704.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    14-2
  705.  
  706.  
  707.     communications port rather than the local monitor.  In  addition, even when
  708.     input  is redirected to the communications port, some remote keystrokes may
  709.     not  work, such  as the  function  and arrow  keys.   Also, creating  "full
  710.     screen" effects on a remote  BBS is difficult, because of the  wide variety
  711.     of monitors and terminal controller cards.   Another general problem is how
  712.     to  pass information between  the BBS software  and the  program doored to,
  713.     such as limiting the amount of time a  caller can spend in the door.   Most
  714.     applications  also are programmed to  wait indefinitely for  input and will
  715.     not time out.  More seriously, if the caller drops carrier, the door should
  716.     terminate  and  send  control  back  to  the  BBS  software,  whereas  most
  717.     applications will totally  ignore the fact that  carrier drops.    Finally,
  718.     many applications let the user issue  DOS commands from within them or even
  719.     to drop to DOS, which would be an intolerable security risk for a BBS.
  720.          The  upshot of  all of these  problems is  that most,  though not all,
  721.     applications that run  acceptably as  doors on BBS's  have been  especially
  722.     designed to run as a door.
  723.  
  724.     14.2.1 Redirecting I/O
  725.     ----------------------
  726.     The main facility  DOS provides in its operating system for redirecting I/O
  727.     is the CTTY command.   Unfortunately, this only works for applications that
  728.     use standard DOS bios  calls to do I/O rather  than "directly write to  the
  729.     hardware".    Unfortunately, the DOS bios for  handling I/O is so slow that
  730.     most  applications  directly  write  to  hardware  rather  than   accept  a
  731.     performance penalty.    When SysOp  function 7 is used,  RBBS-PC will write
  732.     out  a door  that does  nothing  but redirect  I/O  and drop  to DOS,  then
  733.     terminate completely.    What  typically happens after  the drop to  DOS is
  734.     that the output of an  invoked program appears on the local  monitor rather
  735.     than the remote, so that the remote SysOp calling in sees nothing.
  736.  
  737.     While being limited to programs  that use standard DOS callers and  print a
  738.     "line  at a  time" on the  screen, scrolling  prior lines up,  CTTY has one
  739.     major liability.    When the output  is redirected from the console  to the
  740.     communications  port, nothing  appears on  the local  monitor, so  that the
  741.     SysOp "snooping"  on the BBS  is unable to  see what the  caller does while
  742.     dooring.  This program is addressed by a device driver called GATEWAY which
  743.     adds local echo to remote sending.    It is installed in CONFIG.SYS.    For
  744.     doors, then simply  say "CTTY GATE1" rather than "CTTY COM1".   For drop to
  745.     dos, simply tell RBBS-PC in configuration parameter 106  what device to use
  746.     after specifying you do not want to use CTTY.
  747.  
  748.     CTTY does not work in every environment.   For example, it is ignored under
  749.     Desqview and does not work  properly under TANDY DOS.    Also, with DOS  it
  750.     fails  to  redirect  standard error  messages.      To  solve this  problem
  751.     STDERR.COM is included  as part of the basic RBBS-PC  system.  This program
  752.     was provided by Quarterdeck  Systems.  If  you encounter this problem,  run
  753.     "STDERR.COM" one time only before  you start RBBS-PC, including it  in your
  754.     AUTOEXEC.BAT file.
  755.  
  756.     An alternative  method for redirecting I/O  is to use DOS  redirection on a
  757.     command line.     The ">xxx"  redirects standard output  to device  xxx and
  758.     "<xxx" redirects  standard input  to device  xxx.     So, invoking  program
  759.     "TEST" as follows
  760.  
  761.                           TEST <com1 >com1
  762.  
  763.     should  send and  receive from  communications port  1, if  the application
  764.     supports DOS redirection.
  765.  
  766.  
  767.  
  768.     THE USE OF RBBS-PC "DOORS"                                             14-3
  769.  
  770.  
  771.     A  shareware  product  called  DOORWAY  goes  a  long  way  toward  getting
  772.     applications never written to  be a door to at  least work remotely.    You
  773.     simply door  to DOORWAY and invoke the intended door through DOORWAY rather
  774.     than directly.   While not every application will run, it does take care of
  775.     most I/O problems.   See the documentation of DOORWAY on how to install it.
  776.  
  777.     Programs  written  explicitly   as  a  door  will  handle   these  problems
  778.     themselves.
  779.  
  780.     14.2.2 Exchanging Information
  781.     -----------------------------
  782.     Most  applications were never designed  to take input  from another running
  783.     program.   This creates a problem  for BBS's, which almost always limit the
  784.     session time a caller  can have, so that the  time a caller can spend  in a
  785.     door  likewise  should have  a upper  limit,  preferably no  more  that the
  786.     session time remaining that the caller has.   One of the main advantages of
  787.     applications  written  to  be  doors  is  that  they  are  design  to  take
  788.     information from the BBS.  RBBS-PC has for years written out information in
  789.     a standardized format, in  a text file, for doors  to read.   This  file is
  790.     DORINFOn.DEF, where  n is  the node  id (1-9,0,A-Z),  written  to the  same
  791.     drive/path as  the caller's file,  and consists of  all text, one  piece in
  792.     information per line, in the following order:
  793.  
  794.          1.   The name of the RBBS-PC system
  795.          2.   The SysOp's first name
  796.          3.   The SysOp's last name
  797.          4.   The communications port being used
  798.          5.   The baud rate and parity with which the caller logged on, and the
  799.               baud rate at which RBBS-PC is connected to the modem
  800.          6.   The network type (if any) RBBS-PC is running in
  801.          7.   The caller's first name
  802.          8.   The caller's last name
  803.          9.   The city and state the caller is from
  804.          10.  The caller's graphics preferences
  805.          11.  The caller's security level
  806.          12.  The caller's time remaining in the current session
  807.          13.  Whether fossil driver is used (-1 = yes, 0 = no)
  808.  
  809.     RBBS-PC macros allow any information to be  written to a file for a door in
  810.     nearly any format desired (see 13.4), as well as put  different information
  811.     on a command line for the door.
  812.          RBBS-PC passes the  node id as the first command  line argument to the
  813.     batch  file it invokes (or  as specified in the door  control file) so that
  814.     the DOOR knows which  DORINFO file to read.    There are external utilities
  815.     for  converting DORINFO interfaces to other formats, for doors that support
  816.     different standards.
  817.  
  818.     14.2.3 Terminating After Carrier Loss
  819.     -------------------------------------
  820.     Applications not written as doors  typically will sit and wait forever  for
  821.     input.   The do not "time out", that is, terminate after a limited  time in
  822.     which no input is  received.   After if the carrier is dropped, they do not
  823.     detect that  the remote caller is  "gone" and will sit  forever waiting for
  824.     input.   In effect, a dropped carrier "hangs" the BBS  and no further calls
  825.     will  be  processed.   Programs written  as doors  will terminate  both for
  826.     inactivity  and when carrier drops.     The solution  to this problem is to
  827.     install a memory resident program that will reboot the PC if carrier drops.
  828.     The public domain program WATCHDOG does this.   Simply turn  WATCHDOG on in
  829.     the first  statement in the  door batch file, and  turn it off  as the last
  830.  
  831.  
  832.  
  833.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    14-4
  834.  
  835.  
  836.     statement.    WATCHDOG is not needed, and should  not be used, for programs
  837.     explicitly written to be doors.
  838.  
  839.     14.2.4 Security
  840.     ---------------
  841.     SysOps should  realize  that  doors  greatly increase  the  security  risks
  842.     associated  with  running  a  BBS.     One  general  problem  is  that most
  843.     applications for personal computers  assume that the user is  the owner and
  844.     has access  to everything on  the PC.    As a  matter of  convenience, they
  845.     often give  the user access to  many functions, such as  deleting files, or
  846.     even shelling  to DOS.    This  assumption is simply  not true when  remote
  847.     callers  door to the application.   Very  few programs not designed to be a
  848.     door let the SysOp disable such dangerous functions.
  849.  
  850.     14.3 Invoking "DOOR"s Via The External Control File
  851.     ---------------------------------------------------
  852.     In addition to simply invoking "DOOR"s using the standard approach outlined
  853.     above,  RBBS-PC supports a more  sophisticated interface to  doors.  CONFIG
  854.     parameter 109  allows the SysOp to  specify the name of  this control file,
  855.     which is usually DOORS.DEF.
  856.  
  857.     This  approach  allows  each   DOOR  to  be  invoked  in   different  ways.
  858.     Specifically,  the SysOp  can  tailor the  way  each "DOOR"  is invoked  as
  859.     follows:
  860.  
  861.        - The minimum security level to invoke each "DOOR" may be different.
  862.  
  863.        - The caller may be required to answer a questionnaire before the "DOOR"
  864.          is  invoked.   This is extremely  useful if  the "DOOR"  is a database
  865.          search  program and  the  questionnaire gathers  the necessary  search
  866.          criteria from the caller prior to invoking the "DOOR".
  867.  
  868.        - The "DOOR" may be either SHELLed to (RBBS-PC remains in memory and the
  869.          "DOOR"  is  loaded into  free RAM)  or  EXITed to  (RBBS-PC terminates
  870.          itself and releases the memory for the "DOOR" to use).
  871.  
  872.        - The "DOOR"  may be  invoked via  a "template"  (see section 20.2)  and
  873.          information passed to the "DOOR".  "Templates" are useful when passing
  874.          information  from  a  questionnaire  to  a  database  search  program.
  875.          RBBS-PC  normally  passes the  node  ID as  the  first parameter  to a
  876.          "DOOR".   When using a  "template" to invoke  a "DOOR" the  "template"
  877.          must include the parameter "[NODE]", if the node ID is to be passed to
  878.          the "DOOR".
  879.  
  880.        - A file  may be  specified for  RBBS-PC to display  to the  caller upon
  881.          returning from a  "DOOR".  This file may be created by the "DOOR" that
  882.          was invoked  (i.e. the output of the database search and retrieval) or
  883.          simply a text file that the SysOp created.
  884.  
  885.        - When  returning  from  each "DOOR",  the  caller  can  be required  to
  886.          re-enter their password as an added security verification.
  887.  
  888.        - The maximum amount  of time a caller can  spend in each "DOOR"  can be
  889.          specified.  If the amount of time remaining the user has on the system
  890.          is greater  than the amount of time allowed in the "DOOR", the smaller
  891.          of the two times is used.
  892.  
  893.     The format of the door control file is:
  894.  
  895.  
  896.  
  897.     THE USE OF RBBS-PC "DOORS"                                             14-5
  898.  
  899.  
  900.     1.   Name of door - up to 8 characters
  901.     2.   Minimum security to use door
  902.     3.   Questionnaire to execute before the door
  903.     4.   Method to invoke doors - "S" for shelling, else go to .BAT file
  904.     5.   Template for invoking door  - make sure the first  word has a file
  905.          extension  - RBBS-PC will  check for  existence of  the first  word as
  906.          file.
  907.     6.   Whether to  ask for  password  on return  - Y  is  yes, anything  else
  908.          bypasses password check
  909.     7.   File to display after the door
  910.     8.   Maximum time allowed  in doors - time  remaining passed to door is
  911.          reduced if max time is less.
  912.  
  913.     Note:  RBBS-PC normally passes  the node id as the 1st parameter to a door.
  914.     If  a template is used, RBBS-PC will  not automatically add this parameter.
  915.     If you want it, you should include "[NODE]" in the template.  Special note:
  916.     A door must still have a .BAT file  in order to be invoked, even if the BAT
  917.     file is not used in the template!
  918.     Example #1:
  919.  
  920.     MYDOOR,4,C:\RBBS\QUESTION\DOORQ.DEF,D,"MYDOOR.BAT [1] [2]",N,MYDOOR.TXT,
  921.  
  922.     This line tells RBBS-PC:
  923.  
  924.        - The name of the door is "MYDOOR"
  925.        - Users with security 4 and above can run this door
  926.        - Before starting the door, users are asked the DOORQ.DEF questionnaire
  927.        - RBBS-PC should EXIT and run the door (rather than SHELLING)
  928.        - The  door  is  started  by  running  MYDOOR.BAT,  and  two  parameters
  929.          (presumably set in the questionnaire) are passed to the .BAT.
  930.        - The caller does NOT have to enter a password to return to RBBS-PC
  931.        - The  file  "MYDOOR.TXT" is  shown to  the  caller before  returning to
  932.          RBBS-PC
  933.        - No time limit (other than the caller's session time) is placed on this
  934.          door.
  935.  
  936.     Example #2:
  937.  
  938.     MYDOOR,10,,S,"MYDOOR.BAT [NODE]",Y,,10
  939.  
  940.     This line tells RBBS-PC:
  941.  
  942.        - The name of the door is "MYDOOR"
  943.        - Users with security 10 and above can run this door
  944.        - No questionnaire is asked before starting the door
  945.        - RBBS-PC should SHELL to  the door (rather than EXITING)
  946.        - The door is started by running MYDOOR.BAT, and the RBBS-PC node number
  947.          is passed to the .BAT.
  948.        - The caller DOES have to enter a password to return to RBBS-PC
  949.        - No file is shown to the caller before returning to RBBS-PC
  950.        - A 10  minute time limit  is placed on  this door (unless  the caller's
  951.          session time is less than this).
  952.  
  953.     As with  all features, the  control file approach  to invoking a  "DOOR" is
  954.     optional.  However, even  if it is used a  "DOOR" can only be invoked  by a
  955.     caller if a .BAT file exists.
  956.  
  957.  
  958.  
  959.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    14-6
  960.  
  961.  
  962.     14.4 EXITing or SHELLing to "DOOR"s
  963.     -----------------------------------
  964.     There are two ways to execute other programs from RBBS-PC:
  965.  
  966.      1)  EXITing RBBS-PC  and invoking the other  program via a .BAT  file that
  967.          RBBS-PC builds dynamically, or
  968.  
  969.      2)  SHELLing to the other program while RBBS-PC remains in memory.
  970.  
  971.     EXITing RBBS-PC allows other BASIC programs  to be run as external programs
  972.     to RBBS-PC, and allows all of RBBS-PC's features to be  active in computers
  973.     with only 320K of memory.  The "price" that is paid  is that upon returning
  974.     from  the externally called program,  RBBS-PC's .EXE file  must be reloaded
  975.     into  memory.   Unless a control  file is  used to  invoke "DOOR"s, RBBS-PC
  976.     always EXITs to "DOOR"s.
  977.  
  978.     SHELLing prohibits other BASIC programs  to be run as external programs  to
  979.     RBBS-PC, consumes memory because  RBBS-PC remains in memory when  the other
  980.     program is running, and requires 386K of memory (under DOS 3.2) to activate
  981.     all of RBBS-PC's  features.  However, SHELLing  does eliminate the  need to
  982.     reload the RBBS-PC.EXE file each time.
  983.  
  984.     14.5 Resetting The User's Record Via a "DOOR"
  985.     ---------------------------------------------
  986.     WARNING -- this is an  extremely powerful feature!  It opens  up everything
  987.     in the  user record to  modification by the "DOOR".   The "door"  must also
  988.     have knowledge of where fields are in the user record and may cease to work
  989.     properly when the user record changes its format.  The main application for
  990.     this is feature within RBBS-PC if for "DOOR"s that maintain  certain SysOp-
  991.     defined fields.
  992.  
  993.     For a "DOOR" to reset  any part of the user record all a door  has to do is
  994.     include in DOUTx.DEF file, where x is node number, a line in the format
  995.  
  996.                         UR(<start>:<end>),<value>
  997.  
  998.     where:
  999.            <start> is the beginning byte in user record,
  1000.            <end> is the number of bytes to revise, and
  1001.            <value>  is  what goes  into the  specified  position in  the user's
  1002.     record.
  1003.  
  1004.      For example,
  1005.  
  1006.                     UR(63:24),"City,State"
  1007.  
  1008.     would update the city/state  field with the value "City,State",  setting 24
  1009.     bytes in  user record to that  value (blank fill to  right), beginning with
  1010.     character position 63.    The "UR"  request only works  for data stored  in
  1011.     character format in the user record.   RBBS-PC supports a second request in
  1012.     the form
  1013.  
  1014.                      SL,<sign><value>
  1015.  
  1016.     where  "SL" stands for  security level.    <sign> can be  nothing, plus, or
  1017.     minus, and  means respectively to  set the security level  to the following
  1018.     value, or  to raise  or lower the  security by the  amount specified.   For
  1019.     example, "SL,6"  requests that  the security  be set to  6 whereas  "SL,-2"
  1020.     means to lower the security by 2.
  1021.  
  1022.  
  1023.  
  1024.     THE USE OF RBBS-PC "DOORS"                                             14-7
  1025.  
  1026.  
  1027.     14.6 A Summary of "DOOR"s
  1028.     -------------------------
  1029.     Doors stretch IBM's DOS' capabilities and requires more knowledge than most
  1030.     other BBS  functions.  If the preceding discussion of "doors" is a complete
  1031.     mystery to you, contact a SysOp of an RBBS-PC that is using "doors" and ask
  1032.     for help.  However, if you call a SysOp to learn about "doors" for personal
  1033.     gain (i.e.  you are a consultant  or some company's employee  being paid to
  1034.     write  a  "door") have  the  courtesy to  tell  him.   Please  do  not take
  1035.     advantage  of the  "user helping  user" concept.   Anyone who  has acquired
  1036.     specialized knowledge has the right to  be remunerated for their efforts if
  1037.     their  knowledge  is being  used to  further  commercial purposes  and they
  1038.     request it.
  1039.  
  1040.  
  1041.  
  1042.     THE SECURITY FEATURES OF RBBS-PC                                       15-1
  1043.  
  1044.  
  1045.     15. THE SECURITY FEATURES OF RBBS-PC
  1046.     ------------------------------------
  1047.     RBBS-PC has  always been an  open system designed  for public use.  A SysOp
  1048.     should   always  ASSUME that  EVERY FILE ON  THE PC running RBBS-PC  CAN BE
  1049.     DOWNLOADED   AND/OR    DESTROYED.     However,     RBBS-PC  has   extensive
  1050.     safeguards   that   systematically    enhance security  and privacy.    For
  1051.     example,  RBBS-PC has  the  logic  within  it's  code  to  prohibit  anyone
  1052.     (including the SysOp) from downloading the RBBS-PC "system" files described
  1053.     in section 6.2.    RBBS-PC can still be  run as  a  wide-open  system,  but
  1054.     the  SysOp has  many additional  options   to   restrain   access.    These
  1055.     security options make RBBS-PC much more suitable for  private  and business
  1056.     use.
  1057.  
  1058.     RBBS-PC's security is controlled by three things:
  1059.  
  1060.          1. the system configuration file (RBBS-PC.DEF),
  1061.          2. the  two external security files for
  1062.                a. passwords (PASSWRDS), and
  1063.                b. file downloads (FILESEC), and
  1064.          3. the users file (USERS) in which each user has an assigned
  1065.             security level.
  1066.  
  1067.     The  users  file is controlled by  the SysOp  user  maintenance  function 5
  1068.     as described in section 16.  To change a specific  users security level you
  1069.     select the M>odify option and  then the S>ecurity option.  This  allows you
  1070.     to set  the security level for a user.  Users cannot set their own security
  1071.     levels.  Section  15.3 describes  how to implement  special passwords  that
  1072.     provide  special privileges to  the groups that  issue them.   Section 15.4
  1073.     describes how  specific files, groups of files,  or even whole disk volumes
  1074.     can have download security levels associated with them.
  1075.  
  1076.     15.1 RBBS-PC's Security Features
  1077.     --------------------------------
  1078.     Each  user  has an  assigned  security  level,  permitting 65,536  possible
  1079.     security  levels.    Each command  in  RBBS-PC also  has  a  security level
  1080.     assigned to it.   Security assignments are controlled by the SysOp.  To use
  1081.     a command,  the caller's security  level must  be at least  as high as  the
  1082.     command's security  level.
  1083.  
  1084.     The SysOp can assign a file or group of files both a security level and   a
  1085.     password.  To download a file, a caller must have a security level at least
  1086.     as high as the  file's and be able to  give the file's password (if  one is
  1087.     present).  All users must pass  these security tests, including anyone with
  1088.     SysOp privileges.
  1089.  
  1090.     Messages can be assigned a password by their creator. Then only persons who
  1091.     are able to give that password can read or kill the message.  Messages with
  1092.     password  protection will show <PROTECTED>  when scanned.   Callers have no
  1093.     way  of distinguishing messages to private individuals and to groups except
  1094.     by  how they  are addressed.   Persons with  SysOp privileges  can read all
  1095.     messages.  See section 15.2 for an example of group passwords.
  1096.  
  1097.     Security  violations are  logged  to  the  CALLERS  file.    These  include
  1098.     attempting   to  use functions  without sufficient  security clearance  and
  1099.     failure to give required passwords.
  1100.  
  1101.     RBBS-PC's default configuration is that of an "open" system.
  1102.  
  1103.  
  1104.  
  1105.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    15-2
  1106.  
  1107.  
  1108.     RBBS-PC's security system provides the SysOp with several choices on how to
  1109.     run RBBS-PC. The chief ones are as follows:
  1110.  
  1111.     1.  Change the bulletin board from an open system available to all callers,
  1112.     to a pre-registered  system available only to specified users.   To support
  1113.     this option, there is a function in the SysOps user maintenance option 5 to
  1114.     ADD users.
  1115.  
  1116.     2.  A SysOp can set up different "classes" of users by assigning  different
  1117.     security levels  to different users.  Concurrently the SysOp would have to
  1118.     assign different security levels  to different commands.  For  example, new
  1119.     callers might  be permitted only  to leave a  comment, read  bulletins, and
  1120.     list   files that can be  downloaded.  Or there  might be a  group of files
  1121.     assigned a security level that only members of a special interest group can
  1122.     download.
  1123.  
  1124.     3.   The SysOp  can  segregate the  functions of  the  bulletin board  into
  1125.     different  groups based  on a password.  A specific file  or group of files
  1126.     can  be downloadable  only  to those  who  know the  password.   Similarly,
  1127.     messages can  be made open to  everyone knowing the password  but closed to
  1128.     everyone else.  This way there can be semi-private portions of the bulletin
  1129.     board.
  1130.  
  1131.     15.2 Examples of Uses for RBBS-PC's Security System
  1132.     ---------------------------------------------------
  1133.     Some  examples of how a SysOp can  tailor RBBS-PC using RBBS-PC's extensive
  1134.     security features follow.
  1135.  
  1136.     SPECIAL INTEREST GROUPS --  A special interest group (SIG) in a users group
  1137.     wishes  to  run  a RBBS-PC for both the  general public and  its  own  use.
  1138.     An   example would be an  authors SIG for persons  interested in publishing
  1139.     books  and  articles  or  developing commercial software.  A definite  need
  1140.     would  exist to be able to address messages to everyone  in the SIG without
  1141.     making  them open to every caller.   The SIG would establish the convention
  1142.     to  password  protect general  SIG messages with  the password  AUTHORONLY,
  1143.     and to  address them to AUTHORS SIG.
  1144.  
  1145.     Another  example would  be  a bulletin  board devoted  to  the exchange  of
  1146.     software.     Allowing persons  to  use the  message subsystem  would  only
  1147.     interfere with the  primary purpose of  the bulletin board.   Therefore the
  1148.     SysOp removes from the menu the functions for leaving and reading messages.
  1149.     To  prevent a person  from using the  functions to leave or  read a message
  1150.     (even though they  are not displayed), the SysOp assigns  these functions a
  1151.     security level higher than a person who logs on normally would be assigned.
  1152.  
  1153.  
  1154.     Another example  of using RBBS-PC's security  system would be to  set up an
  1155.     agreed upon temporary  password such that when a user  logs onto the system
  1156.     they can  issue the password and get longer  than normally allowed.  If the
  1157.     time  for normal users  is 30 minutes,  the SysOp  can set up  the  special
  1158.     password SOFTEXCHANGE, with a maximum time on of 150 minutes instead of the
  1159.     normal 30.    By shifting over  to this special password  after logging in,
  1160.     members can get extra time if they need it.
  1161.  
  1162.     SOFTWARE SUPPORT --  An author of a freeware program offers RBBS-PC support
  1163.     to  all persons who register their copies and send a contribution  of, say,
  1164.     $35  per copy.    The registered  user  can get  answers  for problems  and
  1165.     download free  updates and sample applications.  The author wants anyone to
  1166.     be able to  call just to  find out about  the service.   New callers get  a
  1167.  
  1168.  
  1169.  
  1170.     THE SECURITY FEATURES OF RBBS-PC                                       15-3
  1171.  
  1172.  
  1173.     security level  of 2 automatically assigned  to them.  This  allows them to
  1174.     use only the message subsystem.  The file subsystem is  assigned a security
  1175.     level of 7.   Contributors are added by the SysOp with a security  level of
  1176.     7 and a   pre-assigned  password.  Except  for SysOp functions,  registered
  1177.     users have free  reign in the RBBS-PC.
  1178.  
  1179.     CLIENT SUPPORT --  A SysOp on a  public RBBS-PC also works as  a management
  1180.     consultant.  She has several associates who work with her on projects.  She
  1181.     needs to be able to send and receive messages from her associates which the
  1182.     general public  should  not see.    So they  agree  on a  message  password
  1183.     NOTPUBLIC. To support her different clients she also needs to leave private
  1184.     files for  downloading.  To  each client she assigns  a special downloading
  1185.     password.   To restrict downloading to just that client, file names are put
  1186.     in the file security file with the appropriate password.  Only persons with
  1187.     the password can then download them.
  1188.  
  1189.     PRIVILEGED  ELECTRONIC MAIL --  A company uses RBBS-PC  to help support its
  1190.     regional offices.  Only regional vice-presidents should be able to download
  1191.     certain  management reports.  In file security these reports are assigned a
  1192.     high security level of 9, which only managers get.
  1193.  
  1194.     15.3 How to Implement the Password File
  1195.     ---------------------------------------
  1196.     CONFIG allows  the SysOp to designate  the name of the  file containing the
  1197.     privileged group passwords to RBBS-PC.   Since this file is a  normal ASCII
  1198.     file, the   SysOp can use  any text editor to  create and update  the file.
  1199.     Put  the  information for each password on  a single line and  separate the
  1200.     fields with  commas.   It is  important to  note that  EACH  record of  the
  1201.     password  must  contain  ELEVEN parameters  (i.e.  TEN  commas).   For  the
  1202.     password file, the format is:
  1203.  
  1204.     parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11
  1205.  
  1206.     where:
  1207.  
  1208.     parm1  -- password that this line applies to
  1209.     parm2  -- security level for password.  If no password was specified, this
  1210.                is the user security level this line applies to
  1211.     parm3  -- maximum time in minutes for a single session
  1212.     parm4  -- maximum time in minutes per day
  1213.     parm5  -- number of days in the subscription period
  1214.     parm6  -- start time, in format HHMM 24 hour style, this line applies to
  1215.     parm7  -- end time, in format HHMM 24 hour style, this line applies to
  1216.  
  1217.     The start/end time  are limits on all other parameters:   meaning that they
  1218.     apply only during the specified  times.   Specifying 0 for  start/end times
  1219.     means that this line applies all day.
  1220.  
  1221.     parm8 -- the type of ratio method to use.  This should be one of the
  1222.     following:
  1223.                 '0' - meaning use the files uploaded to files downloaded ratio
  1224.                 '1' - meaning use the bytes uploaded to bytes downloaded ratio
  1225.                 '2' - meaning use the files per day restriction
  1226.                 '3' - meaning use the bytes per day restriction
  1227.     NOTE:
  1228.     FIRST TIME CALLERS MUST UPLOAD AT LEAST ONE FILE  (BYTE) BEFORE DOWNLOADING
  1229.     UNLESS THEY ARE:
  1230.              EXEMPT FROM THE RATIO REQUIREMENTS,
  1231.              ARE USING THE DAILY RATIO METHOD, OR
  1232.  
  1233.  
  1234.  
  1235.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    15-4
  1236.  
  1237.  
  1238.              AN INITIAL UPLOAD CREDIT HAS BEEN GRANTED.
  1239.     THE INITIAL CREDIT FIELD IS IGNORED FOR METHODS 2 AND 3.
  1240.  
  1241.     parm9 -- the ratio  field.  A positive integer, such as  15, placed in this
  1242.     parameter requires that the  caller maintain a ratio of a  least 1 file (or
  1243.     byte) uploaded  for every  15 files  (or bytes) downloaded.   The  ratio of
  1244.     uploads to  downloads can be  cumulative over  multiple days or  it can  be
  1245.     limited to the current day's activities of the caller.
  1246.  
  1247.     A 0 tells RBBS-PC to  record uploads, but it will not record downloads, nor
  1248.     will  it enforce ratios.  This  allows the SysOp to  have a "free" download
  1249.     period.
  1250.  
  1251.     A  -1 tells  RBBS-PC to record  uploads and  downloads, but  not to enforce
  1252.     ratios.   This allows the SysOp  to keep records of  each user's transfers,
  1253.     but it will not stop a user from downloading as much as time allows.
  1254.  
  1255.     parm10  - the  initial credit  field.   This  can be  any positive  integer
  1256.     including zero.  The use of ratio methods 2 and 3  in conjunction with this
  1257.     field can restrict the number of files (or bytes) that can be downloaded by
  1258.     an individual or group of callers per day.
  1259.  
  1260.     parm11 -  the elapsed  time  (in seconds)  that a  caller  must wait  after
  1261.     logging on before "Time  Locked" features will  become available.  See  the
  1262.     description  of CONFIG  parameter 155 for  a full description  of how "Time
  1263.     Lock" works.
  1264.  
  1265.     Here are some examples of how the PASSWRDS file might be used:
  1266.  
  1267.     ,5,50,,,0001,0600,,,,           Security level 5 gets 50 session minutes
  1268.     ,5,25,,,,,,,,                   between 00:01 AM and 6 AM, and 25 minutes
  1269.                                     otherwise.
  1270.  
  1271.     ,7,50,70,730,,,,,,
  1272.  
  1273.     Security level  7 has a subscription period of  2 years and a session limit
  1274.     of 50 minutes, and a daily limit of 70 minutes.
  1275.  
  1276.     BIGTIME,6,52,,,,,,,,
  1277.  
  1278.     Temporary password BIGTIME gets 52 minutes per session and a security of 6.
  1279.  
  1280.     EXTEND,5,120,,9999,,,,,,
  1281.  
  1282.     Temporary password EXTEND  gets 120  minutes for the  current session  (the
  1283.     user's elapsed time per day  would still remain whatever was set  in CONFIG
  1284.     parameter 8), a temporary security level of 5, and a subscription period of
  1285.     9,999 days.
  1286.  
  1287.     ,7,128,256,,,,,,,120
  1288.  
  1289.     Users who log on  with a security level of 7  are automatically granted 128
  1290.     minutes  on the  system for each  session, 256  minutes total  for each day
  1291.     (independent  of  what  was  set  in parameter  8  of  CONFIG),  and  their
  1292.     subscription period remains unchanged from whatever it was before, but they
  1293.     must wait  120 seconds before being able to exit  to a "door" or download a
  1294.     file.
  1295.  
  1296.     SKIPRATIO,170,120,200,90,0600,1200,0,0,,
  1297.  
  1298.  
  1299.  
  1300.     THE SECURITY FEATURES OF RBBS-PC                                       15-5
  1301.  
  1302.  
  1303.     Temporary password 'SKIPRATIO' grants the caller a security level of 170, a
  1304.     session limit of  120 minutes, a daily time limit of  200 minutes, a 90 day
  1305.     subscription  period, during  the hours  of 6AM  until  noon with  no ratio
  1306.     limits.  No downloads  are added to the counts for the user.   Changing the
  1307.     last "0" to  "-1" would cause the  counts to be added  but not acted on  to
  1308.     limit downloads.
  1309.  
  1310.     ,140,60,60,365,0001,2400,1,10,,
  1311.  
  1312.     Users with  a security level  140, have a  session limit  of 60 minutes,  a
  1313.     daily limit of 60 minutes, a one-year subscription, but during  any hour of
  1314.     the day  they must maintain a ratio  of 1 byte uploaded  for every 10 bytes
  1315.     downloaded.  There is no initial  upload credit. Therefore,  an upload must
  1316.     take place before a download.
  1317.  
  1318.     ,150,70,,90,,,0,15,2,600
  1319.  
  1320.     Users with a security  level of 150, have a session limit  of 70 minutes, a
  1321.     90 day subscription, must maintain a ratio of 1 file uploaded  for every 15
  1322.     downloaded. An initial  credit of 2 files  are granted to  all new/existing
  1323.     users.  However,  they can not exit to a "door"  or download a file for the
  1324.     first 10 minutes (600 seconds) of their session.
  1325.  
  1326.     ,165,90,,120,,,0,30,,
  1327.  
  1328.     Users  with a security level of 165, have  a session limit of 90 minutes, a
  1329.     120 day subscription, must maintain a ratio of 1 file uploaded for every 30
  1330.     downloaded. No initial upload credit is granted.
  1331.  
  1332.     ,170,120,,365,,,2,10,,
  1333.  
  1334.     Users with a security  level of 170 have a session limit  of 120 minutes, a
  1335.     one-year subscription limitations, but can only download 10 files per day.
  1336.  
  1337.     ,200,360,,730,,,3,250000,,
  1338.  
  1339.     Users with a  security level of 200 have a session  limit of 360 minutes, a
  1340.     two-year subscription, but can only download 250000 bytes per day.
  1341.  
  1342.     If you are using COPY CON to create this file you  "MUST" press F6 followed
  1343.     by a Ctrl/Z at the end of the last entry prior to pressing carriage return.
  1344.  
  1345.     15.4 Implementing Security for Download Files
  1346.     ---------------------------------------------
  1347.     CONFIG allows  the SysOp to designate  the name of the  file containing the
  1348.     passwords  and security levels  that can be  used to restrict  downloads of
  1349.     specific  files,  volumes,  or   files  names  meeting  certain  "wildcard"
  1350.     criteria.  This file  contains file names with download restrictions in the
  1351.     format:
  1352.  
  1353.     <filename>, <security level>,<password>
  1354.  
  1355.     Note:   Each line is a record and ends with carriage-return line-feed.  The
  1356.     only optional field is the password field for a filename.   By leaving  the
  1357.     password  field  empty,  no password is assigned to  a  file.   The  commas
  1358.     between  the fields are necessary.  YOU MUST HAVE TWO COMMAS ON  EACH  LINE
  1359.     even if you do not have a password associated with the file.
  1360.     Some examples would be:
  1361.  
  1362.  
  1363.  
  1364.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    15-6
  1365.  
  1366.  
  1367.        COMMAND.COM, 10,DOS
  1368.        PAYROLL.DAT, 99,BANKRUPT
  1369.        CALLGIRL.SEX,,ILLEGAL
  1370.        \FINANCE\STOCKS,100,
  1371.  
  1372.     The  file COMMAND.COM could not be downloaded unless a user had a  security
  1373.     level equal to or greater than 10 AND could supply the password "DOS".  The
  1374.     file PAYROLL.DAT could not be downloaded unless a user had a security level
  1375.     equal to or greater than 99 AND could supply the password "BANKRUPT".   Any
  1376.     user   could  download  the  file CALLGIRL.SEX  if  they  could supply  the
  1377.     password   "ILLEGAL".    Any user  with a security  level of 100  or higher
  1378.     could download   the file  STOCKS in the  DOS subdirectory  FINANCE without
  1379.     supplying any password.
  1380.  
  1381.     Additionally  "wild-card"  characters and drive designators can be used  to
  1382.     protect or restrict certain classes of files (by extension, by drive, etc.)
  1383.     from being downloaded.
  1384.  
  1385.     Some examples would be:
  1386.  
  1387.        A:*.*,8,
  1388.        E:*.SEC,2,PW1
  1389.        A*.M*,0,GX3
  1390.        XY?X.*,9,3XG
  1391.  
  1392.     All files on drive A would require the users to have a security level of  8
  1393.     in  order for  a user to download them.  Any user  who wanted to download a
  1394.     file whose  extension was ".SEC" and was found to  be on drive E would have
  1395.     to   not only  have a security  level of at  least 2  but to also  give the
  1396.     password  PW1.   The third entry above would  require a user who  wanted to
  1397.     download any  file  on any drive with a  prefix that began with "A"  and an
  1398.     extension that began with "M" to have a security level of at least 0 and to
  1399.     enter the  password GX3.  Finally,  the last entry above  would require any
  1400.     user who  wanted to  download any file on any drive  whose four-letter name
  1401.     began with "XY" and whose  last letter was "X" with any extension to have a
  1402.     security level of at least 9 and enter the password 3XG.
  1403.  
  1404.     The  wildcards "*"  and  "?" operate  just like  they  do in  DOS with  two
  1405.     exceptions.   The  "?"  requires a  character.   In  DOS  the name  "HAPPY"
  1406.     satisfies  the  file specification  "HAPPY?" but  it  does not  in RBBS-PC.
  1407.     Also,  in RBBS-PC,  a wildcard applies  to an  extension only  if it occurs
  1408.     after a  period.   Thus  "xyz*" in  DOS finds  "xyz.a" but  not in  RBBS-PC
  1409.     ("xyz*.*" will find it).
  1410.  
  1411.     To get  exceptions to  the general  rule, just put  the exceptions  first.
  1412.     RBBS-PC's file security search  stops with the first applicable  entry that
  1413.     it  encounters.  For example,
  1414.  
  1415.     1.  if you want all files on the B drive to require the user to have a
  1416.          security level of at least 3,
  1417.  
  1418.     2.  except that files on the B drive with the extension ".SEC" would
  1419.          require the user to have a security level of at least 6, and,
  1420.  
  1421.     3.  regardless of the disk drive that they were on, any file beginning
  1422.         with "MES" with an extension of ".SEC" would require the user to have
  1423.         a security level of at least 12
  1424.  
  1425.     you would enter the following into the file security file
  1426.  
  1427.  
  1428.  
  1429.     THE SECURITY FEATURES OF RBBS-PC                                       15-7
  1430.  
  1431.  
  1432.        MES*.SEC,12,
  1433.        B:*.SEC,6,
  1434.        B:*.*,3
  1435.  
  1436.     Special Note:RBBS-PC is hard coded so that there are some files that nobody
  1437.     can  download  --  not  even the  SysOp.    These  are  RBBS-PC.DEF, users,
  1438.     messages,  callers, group password, comments, the file security, and backup
  1439.     files.   Similarly the batch files that  control RBBS-PC and let the caller
  1440.     exit to DOS 2  can not be downloaded.   The default security file  provided
  1441.     with RBBS-PC is empty.
  1442.  
  1443.     15.5 Implementing Security for RBBS-PC Commands
  1444.     -----------------------------------------------
  1445.     RBBS-PC allows each command to be assigned it's own security level.  A user
  1446.     who  wishes to  invoke  an RBBS-PC  command  must have  at  least the  same
  1447.     security level as  the command.  Let's assume that a  SysOp wants to set up
  1448.     the following classes of users:
  1449.  
  1450.       Classification of Users                        Security Level
  1451.  
  1452.     "Locked Out" Users                                     0
  1453.     New Users (first time)                                 1
  1454.     Normal Users                                           2
  1455.     Users who can "view" a Conference                      3
  1456.     Users who can enter Messages                           4
  1457.     Users who can download files                           5
  1458.     Users who can upload files                             6
  1459.     Users who can Join a Conference                        7
  1460.     Users who can do some SysOp commands (Jr. SysOps)      8
  1461.     Users who can enter a "door"                           9
  1462.     Users who can enter all SysOp commands  (Co-SysOps)   10
  1463.  
  1464.     The following  table  illustrates  one  method of  assigning  each  RBBS-PC
  1465.     command it's own security level:
  1466.                                          Security Level
  1467.              Subsystem/Command              Assigned to Command
  1468.  
  1469.      Messages Subsystem
  1470.         A>nswer questionnaire............... 4
  1471.         B>ulletins.......................... 1
  1472.         C>omments........................... 1
  1473.         D>oor subsystem..................... 9
  1474.         E>enter message..................... 4
  1475.         F>iles system....................... 1
  1476.         I>nitial welcome.................... 1
  1477.         J>oin a conference.................. 7
  1478.         K>ill messages...................... 4
  1479.         O>perator page...................... 1
  1480.         P>ersonal mail...................... 2
  1481.         R>ead messages...................... 2
  1482.         S>can messages...................... 1
  1483.         T>opic of messages.................. 1
  1484.         U>tilities (more)................... 1
  1485.         V>iew conference mail............... 3
  1486.         W>ho's on other nodes................3
  1487.         @>Library Sub-System.................1
  1488.      Files Subsystem
  1489.         D>ownload........................... 5
  1490.         G>oodbye............................ 0
  1491.  
  1492.  
  1493.  
  1494.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    15-8
  1495.  
  1496.  
  1497.         L>ist file directories.............. 4
  1498.         N>ew files.......................... 5
  1499.         P>ersonal downloads................. 5
  1500.         S>earch directories for string ..... 1
  1501.         U>pload a file...................... 1
  1502.         V>erbose listing of ARC file........ 1
  1503.      Utilities Subsystem
  1504.         B>aud rate.......................... 1
  1505.         C>lock (time of day)................ 1
  1506.         E>cho selection..................... 1
  1507.         F>ile transfer protocol............. 1
  1508.         G>raphics........................... 1
  1509.         L>ength of page..................... 1
  1510.         M>essage Margin..................... 1
  1511.         P>assword change.................... 1
  1512.         R>eview preferences................. 0
  1513.         S>tatistics of system............... 1
  1514.         T>oggle (line feeds, etc.).......... 1
  1515.         U>serlog............................ 2
  1516.      Library Subsystem
  1517.         A>rchive a Library disk..............5
  1518.         C>hange a Library disk...............5
  1519.         D>ownload........................... 5
  1520.         G>oodbye............................ 0
  1521.         L>ist file directories.............. 4
  1522.         S>earch directories for string ..... 1
  1523.         V>erbose listing of ARC file........ 1
  1524.      GLOBAL commands
  1525.         ?>What can be done.................. 1
  1526.         H>elp with a command................ 1
  1527.         Q>uit to another subsystem or exit.. 1
  1528.         X>Expert/novice toggle.............. 1
  1529.      SYSOP Subsystem
  1530.         1>List comments..................... 8
  1531.         2>List callers log..................10
  1532.         3>Recover a Message................. 8
  1533.         4>Erase comments.................... 9
  1534.         5>USERS maintenance.................10
  1535.         6>Toggle page bell.................. 8
  1536.         7>Exit to DOS 2.x or above.......... 9
  1537.  
  1538.     15.6 Beware of the "Trojan Horse!"
  1539.     ----------------------------------
  1540.     Despite RBBS-PC's security always remember that you should always assume:
  1541.  
  1542.            "EVERY FILE ON THE PC RUNNING RBBS-PC CAN
  1543.            BE DOWNLOADED, MODIFIED, AND/OR DESTROYED!"
  1544.  
  1545.     RBBS-PC's security system appears to be so fool-proof that some individuals
  1546.     have resorted  to  uploading programs  that  appear to  do one  thing,  but
  1547.     actually do  something else.  These "trojan  horse" programs search all the
  1548.     disks that are  connected to the PC that the program is running on for such
  1549.     RBBS-PC files as RBBS-PC.DEF or USERS.  The program then copies these files
  1550.     to an innocuously  named file that can be downloaded  later when the person
  1551.     who uploaded it logs onto the system again.  Since RBBS-PC.DEF contains the
  1552.     pseudonym  that the SysOp can  use to logon on remotely  as the SysOp, once
  1553.     the user downloads a  copy of it the user can then log  on as the SysOp and
  1554.     do just  about anything  including exiting  to DOS and  formatting all  the
  1555.     disks on the system.  Similarly, the USERS file contains  passwords and the
  1556.  
  1557.  
  1558.  
  1559.     THE SECURITY FEATURES OF RBBS-PC                                       15-9
  1560.  
  1561.  
  1562.     security levels of everyone on your RBBS-PC -- some of whom may  have SysOp
  1563.     privileges.
  1564.  
  1565.     You can  protect yourself against anyone  logging on as you,  the SysOp, by
  1566.     not allowing  anyone to logon as  the SysOp remotely (see  CONFIG parameter
  1567.     121).   You can  protect yourself against unauthorized  access of the USERS
  1568.     file by simply not allowing any user to have SysOp privileges.
  1569.  
  1570.     Of course there is the "trojan horse" program that doesn't even bother with
  1571.     the above, but simply destroys all the disk files on all the disks that are
  1572.     connected to the PC that is running the program.
  1573.  
  1574.  
  1575.  
  1576.     SYSOP FUNCTIONS                                                        16-1
  1577.  
  1578.  
  1579.     16. SYSOP FUNCTIONS
  1580.     -------------------
  1581.     The SysOp functions are separated into two groups: Those functions that the
  1582.     SysOp, or  user with  sufficient security,  can use  while logged onto  the
  1583.     RBBS-PC, and those functions that are available from the local console.
  1584.  
  1585.     16.1 SYSOP Commands Within RBBS-PC
  1586.     ----------------------------------
  1587.     The following  operations can be performed  by the SysOp, or  any user with
  1588.     sufficient security, at the main RBBS-PC command prompt:
  1589.  
  1590.     1  - Type COMMENTS file.  The contents  of the COMMENTS file is displayed.
  1591.          If commets are saved as PRIVATE MESSAGES, the only time comments  will
  1592.          appear in this file is when the message file is full.
  1593.  
  1594.     2  - Type CALLERS file.  A log is maintained of all persons who have called
  1595.          the  system.   This function will list the file showing the users name
  1596.          and  the  date and time signed on as well  as a log of their activity.
  1597.          This function is also available through the UTIL menu (function U).
  1598.  
  1599.     3  - Resurrect a  message.  This function  will restore a message  that has
  1600.          been  killed.   If  the  message file  has been  "packed",  the killed
  1601.          messages are  no longer recoverable.   The function  will ask  for the
  1602.          message number of the message to be recovered.
  1603.  
  1604.     4  - Erase the  COMMENTS file.  This  function will erase the  comments.  A
  1605.          new  comments file  will be  created  the next  time a  user leaves  a
  1606.          comment.
  1607.  
  1608.     5  - USERS file maintenance.  The users file contains entries for each user
  1609.          registered with the system.  This function permits the SysOp to:
  1610.  
  1611.          A)dd -- add a user to the USERS file.
  1612.          L)st -- list the USERS file.
  1613.          P)rt -- print the USERS file on the printer.
  1614.          M)od -- modify a record in the USERS file.
  1615.          S)can - scan each record in the USERS file for a particular string.
  1616.  
  1617.     In <M>odify mode, limited editing of the users record in the USERS file can
  1618.     be done.  The following subfunctions are available:
  1619.  
  1620.          D  - Delete the user.
  1621.          F  - Find another user in the USERS file.
  1622.          M  - Return to the option 5 function prompt.
  1623.          N  - Give the user a new password.
  1624.          P  - Toggle the printer flag to print entries on the printer.
  1625.          Q  - Quit and return to the main message prompt.
  1626.          R  - Reset the user's graphic mode.
  1627.          S  - Set the security level of  the user.  This can be used to lockout
  1628.               or grant special privileges to the user.
  1629.          X  - Modify user's upload/download counts.
  1630.          #  - locate any record number within the USERS file.
  1631.          $  - Change the user's Registration date.
  1632.  
  1633.     In  <M>odify  mode a  record will  be displayed  followed by  a subfunction
  1634.     prompt  for action.  To  get to a specific record  the record number can be
  1635.     entered at the prompt and if  valid that record will be displayed.   If the
  1636.     record number is invalid or [ENTER] is pressed, the next record in the file
  1637.     will be displayed.
  1638.  
  1639.  
  1640.  
  1641.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    16-2
  1642.  
  1643.  
  1644.     6  - Toggles the operator  page bell  on/off.  This  overrides the  "office
  1645.          hours" specified in the RBBS-PC.DEF file.
  1646.  
  1647.     7  - SysOp  drop to  DOS as  a remote  user.   If the  SysOp has  logged on
  1648.          remotely  and  is  running RBBS-PC  under  DOS  2.0  or greater,  this
  1649.          function will use the door  interface to create a "remote DOS  shell."
  1650.          RBBS-PC must be able to process door exit .BAT files in order for this
  1651.          to work (see section 13).   The SysOp will then see the DOS  prompt at
  1652.          the  remote terminal and can execute whatever DOS commands or programs
  1653.          the  CTTY command  supports.   DOS  will look  for  COMMAND.COM to  be
  1654.          present  on  the disk  drive you  specified in  parameter 105.   SysOp
  1655.          function 7,  unlike "doors," loads  in a  copy of  COMMAND.COM to  run
  1656.          under the  copy  that was  running  RBBS-PC.   Also  be sure  to  read
  1657.          Appendix  T  and  make  sure  that   you  THOROUGHLY  understands  the
  1658.          limitations that DOS places on you when this option is invoked.
  1659.  
  1660.     Two  areas of caution are advised when using SysOp function 7 under DOS 2.0
  1661.     or  above.   First,  each SysOp  should  test what  can  be done  remotely.
  1662.     Software that  reads and writes directly  to the video BIOS  and does other
  1663.     things  that bypass  the standard  input  and output  of  DOS simply  won't
  1664.     function correctly.  Second,  you should be aware  that you are in  DOS and
  1665.     can return to  RBBS-PC only by issuing the EXIT command.   This will return
  1666.     to  the batch file that  was built dynamically by  RBBS-PC.  This file will
  1667.     then  continue executing and  is designed to  reassign the keyboard  as the
  1668.     console and  then re-invoke RBBS-PC.  If you get disconnected while in DOS,
  1669.     your  system will  be locked  up.   The console  will be  assigned to  your
  1670.     communication port and your modem will  have dropped the line and will have
  1671.     been set  not to  auto-answer.  The  only way  to restore  the system is  a
  1672.     manual power off/on sequence.
  1673.  
  1674.     16.2 SysOp Use of Function Keys and Numeric Pad
  1675.     -----------------------------------------------
  1676.     The  following  function keys  are available  at  the local  console, while
  1677.     RBBS-PC is waiting for  a call, or while a caller is online.  If RBBS-PC is
  1678.     operated  in LOCAL mode (COM0), RBBS-PC will  not allow a non-SysOp user to
  1679.     access  privileged local  commands  (i.e. a  local  user cannot  raise  his
  1680.     security level with the + key).
  1681.  
  1682.     F1 - Return to  DOS.   This is only  active when RBBS-PC  is waiting  for a
  1683.          call.   When the SysOp presses F1, RBBS-PC takes the modem "off hook",
  1684.          so incoming calls will get  a busy signal.  It then creates  a file in
  1685.          the same directory as the CALLERS  file named RBBSxF1.DEF ("x" is  the
  1686.          node  ID).   RBBS-PC then  returns to  DOS.   The invoking  batch file
  1687.          should  check for the presence of the  RBBSxF1.DEF file and halt if it
  1688.          is present after running RBBS-PC.
  1689.  
  1690.     F2 - SHELL to DOS.  RBBS-PC  remains resident but suspended in  memory, the
  1691.          user (if any) remains on-line and the local SysOp is in DOS until  the
  1692.          EXIT command is issued, which returns  control back to RBBS-PC and the
  1693.          caller.
  1694.  
  1695.     F3 - Printer toggle on/off.  This changes the printer on-line status.  When
  1696.          on-line, the printer will  print each caller's name and  the filenames
  1697.          uploaded/downloaded.    It  will   also  print  all  unexpected  error
  1698.          messages.   This function should only  be turned ON when  a printer is
  1699.          attached to the RBBS-PC computer and is ready to print.
  1700.  
  1701.     F4 - Operator page toggle.   This  changes the status  of "operator  annoy"
  1702.          (i.e. allows the SysOp to be pageable).  Operator page time limits are
  1703.  
  1704.  
  1705.  
  1706.     SYSOP FUNCTIONS                                                        16-3
  1707.  
  1708.  
  1709.          set by  CONFIG parameter 7.   This  toggle will  override the  SysOp's
  1710.          "office hours."
  1711.  
  1712.     F5 - Tells RBBS-PC to answer  the phone and check  for an incoming  carrier
  1713.          immediately.
  1714.  
  1715.     F6-  SysOp  available.   This  changes  the  status  of operator  available
  1716.          setting.  This is useful if during your "office hours" you temporarily
  1717.          don't wish to be disturbed.
  1718.  
  1719.     F7-  SysOp NEXT.  After the current caller  logs off, RBBS-PC will initiate
  1720.          a local SysOp login.
  1721.  
  1722.     F8 - Allows the SysOp to grant an on-line user temporary SysOp privileges.
  1723.          This is a toggle on/off switch.
  1724.  
  1725.     F9 - SNOOP toggle.   This key switches  SysOp SNOOP on/off.   When SNOOP is
  1726.          OFF, the local screen will clear.   When SNOOP is ON, the local screen
  1727.          will be updated to reflect what the RBBS-PC user is seeing.
  1728.  
  1729.     F10- This is  the forced chat  switch.  It  announces your presence  to the
  1730.          caller and then allows  both you and the caller  to type and see  each
  1731.          other's  words.  The ESC  key is used  to exit Forced chat  mode or to
  1732.          answer  an "O>perator page"  request.  The  F10 key will  not function
  1733.          until a user logging on has reached the Main Menu.
  1734.  
  1735.     END- Informs  the  current caller  that the  SysOp  needs the  system, then
  1736.          updates his user record and politely logs him off.
  1737.  
  1738.     CTRL END
  1739.        - Logs off  and locks out  the current user that  is on and  informs the
  1740.          user that their presence is unacceptable.
  1741.  
  1742.     PgUp Displays information about the current user.  This information is only
  1743.          displayed on the local screen.  The user's screen is unaffected.
  1744.  
  1745.     PgDn Clear the local screen  (used to remove information displayed  via the
  1746.          PgUp key).
  1747.  
  1748.     LEFT ARROW
  1749.        - Subtracts  one minute from the user's current session time.  Ctrl-Left
  1750.          Arrow subtracts five minutes from the user's current session time.
  1751.  
  1752.     RIGHT ARROW
  1753.        - Adds one minute to the user's current session time.   Ctrl-Right Arrow
  1754.          adds five minutes to the user's current session time.
  1755.  
  1756.     UP ARROW
  1757.        - allows the local SysOp to increment an on-line users security level by
  1758.          one.  CTRL-up-arrow or CTRL-PgUp will increase the security by 5.
  1759.  
  1760.     DOWN ARROW
  1761.        - allows the local SysOp to decrement an on-line users security level by
  1762.          one.  CTRL-down-arrow or CTRL-PgDn will decrease the security by 5.
  1763.  
  1764.     The SysOp can also enter commands on the command prompt line while a caller
  1765.     is on-line.  The  command entered will cause the system  to respond just as
  1766.     it would if  the caller had entered the command.   This should be used with
  1767.     caution because it could confuse a new system user -- users are often timid
  1768.  
  1769.  
  1770.  
  1771.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    16-4
  1772.  
  1773.  
  1774.     enough without  knowing that big  brother is actually  watching them!   Let
  1775.     callers page you and  then tell them that  you can assist with commands  if
  1776.     they get into trouble.
  1777.  
  1778.     16.3 Local Status Display
  1779.     -------------------------
  1780.     RBBS-PC maintains a status display on the bottom line of the local display.
  1781.     The items in the display are in the following form:
  1782.  
  1783.     Node ? AP! PG! AVL ANY LPT SYS     999 NAME CITY, STATE        UM UU UB UD
  1784.  
  1785.     Where:
  1786.          Node ?         is the node number
  1787.          AP!            Indicates this  user triggered an AutoPage (see section
  1788.                         7.11).
  1789.          PG!            This caller paged the SysOp.
  1790.          AVL            The SysOp is AVAILABLE
  1791.          ANY            The SysOp ANNOY switch is on
  1792.          LPT            The PRINTER LOG is active
  1793.          SYS            The SysOp wants a LOCAL log-in next
  1794.          999            The caller's security level
  1795.          NAME           The Caller's name
  1796.          CITY, STATE    The Caller's City and State
  1797.          UM             The MESSAGE file lock (UM=unlocked, LM=locked)
  1798.          UU             The USER file lock (UU=unlocked, LU=locked)
  1799.          UB             The USER BLOCK lock (UB=unlocked, LB=locked)
  1800.          UD             The upload dir/comment lock (UD=unlocked, LD=locked).
  1801.  
  1802.  
  1803.  
  1804.     MESSAGE AREAS WITHIN RBBS-PC                                           17-1
  1805.  
  1806.  
  1807.     17. MESSAGE AREAS WITHIN RBBS-PC
  1808.     --------------------------------
  1809.     RBBS-PC is intended to be an open system.  As such it can have an unlimited
  1810.     number of message areas  and messages.  At the very minimum,  RBBS-PC has a
  1811.     single
  1812.  
  1813.       1) message area, a file named MESSAGES,
  1814.       2) user file, a file named USERS, and
  1815.       3) definition file, a file named RBBS-PC.DEF
  1816.  
  1817.     In addition to  this, additional messages  areas can  be created as  either
  1818.     "conferences" (i.e.  areas that use  the same RBBS-PC.DEF file  as the main
  1819.     RBBS-PC message area) or "sub-boards" (i.e. areas that have their own  .DEF
  1820.     file).
  1821.  
  1822.     17.1 "Conferences" and "Sub-boards" -- the Differences
  1823.     ------------------------------------------------------
  1824.     A "conference" or "sub-board" can be:
  1825.  
  1826.       1) "public" -- any caller can join.
  1827.       2) "public with a separate user file"  -- any caller can join and RBBS-PC
  1828.          remembers  the  last message  read by  each caller  and will  notify a
  1829.          caller on logon that new mail is waiting.
  1830.       3) "semi-public" -- only callers with security levels equal to or greater
  1831.          than that specified for the conference can join.
  1832.       4) "semi-public  with a separate user file" -- only callers with security
  1833.          levels equal to or greater than  that specified for the conference can
  1834.          join  and RBBS-PC remembers  the last message read  by each caller and
  1835.          mail waiting.
  1836.       5) "private  with a  separate user  file" -- only  callers who  have been
  1837.          pre-registered in the separate  user file for the conference  can join
  1838.          and RBBS-PC remembers the last message read and mail waiting.
  1839.  
  1840.     A "sub-board" is just a conference that also has a configuration definition
  1841.     file (.DEF).   Sub-boards can be public, private, or  semi-private.  Access
  1842.     to a  sub-board is controlled by the configuration parameter 123 which sets
  1843.     the   minimum  security  level  required  to  enter  the  "sub-board."    A
  1844.     "sub-board"  configuration file  has the  same format  as the  RBBS-PC main
  1845.     configuration  file,  and is  created and  edited  using CONFIG.EXE.   This
  1846.     allows  a  "sub-board"  to have  its  own  unique  welcome file,  commands,
  1847.     security levels, menus, help,  bulletins, directories, and up  and download
  1848.     areas.  "Sub-boards" can share as  much or as little as desired  with other
  1849.     conferences or other "sub-boards" within the same RBBS-PC system.  The only
  1850.     things a "sub-board"  cannot change are the  primary MESSAGES file and  the
  1851.     communications parameters used by the RBBS-PC it is running under.
  1852.  
  1853.     To  the caller,  a "sub-board"  appears just  like another  bulletin board,
  1854.     accessed from a bulletin board rather than through a telephone number.
  1855.  
  1856.     Public  sub-boards,  just  like  public  boards, are  those  whose  minimum
  1857.     security to  join is not  higher than the  default security for  new users.
  1858.     "Sub-boards"  basically  allow a  single  telephone  number  to offer  very
  1859.     different types and levels of services.  Independent "sub-boards" run under
  1860.     the  same  RBBS-PC service  radically  different  types of  terminals/PC's.
  1861.     Within the same RBBS-PC, one  "sub-board" may have 80 column menus  for IBM
  1862.     and  compatible PC callers, another may have  40 column menus for Atari and
  1863.     Commodore PC  users, and still another  may have 20 column  menus for those
  1864.     using  telecommunications devices  for the deaf  (TDD's).  No  longer is it
  1865.     necessary to provide  three independent  telephone numbers  for three  such
  1866.  
  1867.  
  1868.  
  1869.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    17-2
  1870.  
  1871.  
  1872.     different services.  All callers can dial the same number and simply switch
  1873.     over to the appropriate board.  Extra lines can be added to a roll-over and
  1874.     service all the boards.  "Sub-boards"  make it much easier and feasible for
  1875.     a SysOp to market bulletin board services by allowing hardware to resources
  1876.     to be pooled under one software "umbrella" such as RBBS-PC  and yet service
  1877.     a very  diverse set of  requirements -- much  the same way  that Compuserve
  1878.     does.  One  of the best  hardware configurations for running  a multi-board
  1879.     service like  this  is  PC-Slaves, because  adding  additional  boards  are
  1880.     extremely easy, with virtually no system degradation.
  1881.  
  1882.     "Sub-boards"  greatly benefit  "umbrella"  organizations.   For example,  a
  1883.     computer  club that covers IBM computers,  Apple, Atari, and Commodore.  No
  1884.     longer does software intended for one type of computer have to get mixed in
  1885.     with listings  for another  computer.   Each  computer  can have  not  only
  1886.     separate messages, but bulletins and directories as well.
  1887.  
  1888.     "Sub-boards"  make it easy  to have different "levels"  of service based on
  1889.     security level.  Many SysOps run  both a "free" and a "subscription" board.
  1890.     The  most typical arrangement for this is to  have the free board be on the
  1891.     bottom  of a telephone roll-over and  the pay board be on  the top, and for
  1892.     the top board to require a higher security level.  Non-subscribers who call
  1893.     the pay board number get "kicked" off the board.  "Sub-boards" on the  same
  1894.     telephone  line would give both paying and non-paying callers equal access,
  1895.     if  desired.  Another  example is that  callers with enhanced  security can
  1896.     join  a sub-board  to get  access to  even more  downloads.   Or, executive
  1897.     officers for an organization can have access to a "sub-board"  that has not
  1898.     only special messages but special bulletins and files.
  1899.  
  1900.     The naming conventions of the files associated with a "conference" or "sub-
  1901.     board", for example called CLONES, would be:
  1902.  
  1903.     CLONESM.DEF    --- the message file
  1904.     CLONESU.DEF    --- the user file
  1905.     CLONESW.DEF    --- the "welcome" file (for conferences only)
  1906.     CLONESC.DEF    --- the configuration file (for "sub-boards" only)
  1907.  
  1908.     Using the configuration .DEF file associated with a "sub-board" allows each
  1909.     SysOp to  make the  "sub-boards"  as unique  or similar  as  desired.   Two
  1910.     security levels are very important.  The  minimum security to log on to the
  1911.     board determines who  can join the  "sub-board".  And the  default security
  1912.     level is what newly added callers are assigned.
  1913.  
  1914.     A  "sub-board", like any  conference (public, semi-private,  or private) is
  1915.     closed  to  all who  have  insufficient security.   To  make  a "sub-board"
  1916.     completely  private,  simply set  the  minimum  CONFIG parameter  123  (the
  1917.     minimum  security level a new  user needs to  logon) to be  higher than any
  1918.     normal caller would have.   The only way for  callers to be able to  join a
  1919.     completely  private "sub-board", like a private conference is for the SysOp
  1920.     to have  added them previously to the users file associated with that "sub-
  1921.     board".
  1922.  
  1923.     The  security level a caller  gets when auto-added  is the default security
  1924.     level for the "sub-board" and not the current security level of the caller.
  1925.     This is to prevent special privileges  that a caller has in one "sub-board"
  1926.     from  automatically propagating into  other "sub-boards".   For  example, a
  1927.     caller with SysOp privileges in one "sub-board" who joins  another does not
  1928.     become receive SysOp privileges in the other.
  1929.  
  1930.  
  1931.  
  1932.     MESSAGE AREAS WITHIN RBBS-PC                                           17-3
  1933.  
  1934.  
  1935.     The security level used to determine what "sub-boards" a caller can join is
  1936.     not the current  security level but the original  security level the caller
  1937.     had on the main board.
  1938.  
  1939.     RBBS-PC detects if the bulletins in the "sub-board" are the same  as in the
  1940.     main  RBBS-PC system and  does not  re-display them  when a  "sub-board" is
  1941.     joined.
  1942.  
  1943.     "Sub-boards",  public conferences,  semi-private  conferences, and  private
  1944.     conferences can all co-exist within the same RBBS-PC system.  Sub-boards in
  1945.     turn can have  sub-boards in  them, as  well as  public, semi-private,  and
  1946.     private conferences.
  1947.  
  1948.     The  primary  disadvantage  of  "conferences"  or  "sub-boards"  that  have
  1949.     separate user files associated  with them is the additional disk space that
  1950.     is required  for the users file.  RBBS-PC's CONFIG parameter 290 allows the
  1951.     SysOp to let a  user on as a "guest" if  there is no more room left  in the
  1952.     users  file  for  the  "sub-board",  semi-private  conference,  or  private
  1953.     conference.   Not having a user  record defeats one of  the main mechanisms
  1954.     for remembering a  user's preferences, of course,  but the SysOp  can start
  1955.     with a  smaller users  file and  expand later without  the risk  of denying
  1956.     callers access.
  1957.  
  1958.     Obviously, "sub-boards" take more time to set up and maintain.  While it is
  1959.     nice to be able to  have parts of RBBS-PC vary radically from  one another,
  1960.     every one  that does vary  is another item to  create and maintain.   "Sub-
  1961.     boards"  can  multiply  the  work   necessary,  for  example,  to  maintain
  1962.     bulletins.   There are more users  and message files to  oversee.  However,
  1963.     Kim Wells  MU-EDIT is an invaluable tool  for managing multiple message and
  1964.     user  files.  Give Kim's RBBS-PC call at (301) 599-7651/7652 and get a copy
  1965.     of MU-EDIT.
  1966.  
  1967.     17.2 Making a "Conference" or "Sub-board" Successful
  1968.     ----------------------------------------------------
  1969.     To make a "conference" or "sub-board" successful several guidelines should
  1970.     be followed rather rigorously:
  1971.  
  1972.       1) Establish  a "conference"  or "sub-board" chairman  (i.e. a  SysOp) to
  1973.          manage the conference. The SysOp's job is to add new users, delete old
  1974.          ones, make  sure that the subject and/or  the agenda of the conference
  1975.          is adhered  to by killing  messages that are  inappropriate.  This  is
  1976.          best accomplished by having a separate user file for each "conference"
  1977.          or "sub-board" in  which the caller only has SysOp  privileges when in
  1978.          the specific "conference" or "sub-board."
  1979.  
  1980.       2) Establish an "agenda" or list of subject areas for the "conference" or
  1981.          "sub-board."   One of these should be  about new subject areas.  These
  1982.          areas  should be  VERY  narrow in  scope.   The  essence  of any  good
  1983.          conference is keeping it focused.   Everyone has been in at  least one
  1984.          meeting/conference  that  was  a waste  of  time  because whoever  was
  1985.          running  the meeting/conference did not keep  the dialogue centered on
  1986.          the subject or agenda.
  1987.  
  1988.       3) If a continuity of dialogue is to be achieved, it is advisable to keep
  1989.          the conference "focused" -- either by keeping the number of conference
  1990.          members  limited,  or  by  keeping  the  subject  matter  very narrow.
  1991.          Another  interesting thing about  "private" conferences and sub-boards
  1992.          as  implemented  within RBBS-PC  is that  they  are not  "public" and,
  1993.  
  1994.  
  1995.  
  1996.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    17-4
  1997.  
  1998.  
  1999.          therefore, are even  more protected  by the first,  fourth, and  fifth
  2000.          amendments.
  2001.  
  2002.     17.3 Setting Up a "Conference" or "Sub-board"
  2003.     ---------------------------------------------
  2004.     The SysOp sets up a "conference"  using the CONFIG utility parameter 167 to
  2005.     pre-format up to  two files -- one  for the messages to be  associated with
  2006.     the conference  and one for the  users to be associated  with a conference.
  2007.     The name  of a "conference"  can be from  one to seven  characters that are
  2008.     valid  for a  file  name.   RBBS-PC  will add  "M" (for  the  messages file
  2009.     associated the conference) or a "U" (for the users file associated with the
  2010.     conference)  to the  filename.   The  SysOp can  then enter  the conference
  2011.     member's names  in the conference USERS file by using the SysOp function 5.
  2012.     The  SysOp can  "join" any  conference and  need not  be in  any particular
  2013.     conference's USERS file.
  2014.  
  2015.     Like "conferences", RBBS-PC  supports an unlimited number of  "sub-boards".
  2016.     "Sub-boards" are  equally easy  to create.   If CLONES were  the name  of a
  2017.     public  conference (the CLONES  message file CLONESM.DEF  exists), all that
  2018.     would  have to be done to make CLONES  a "sub-board" would be to run CONFIG
  2019.     to
  2020.       1) create a separate  user's file, CLONESU.DEF, for  this formerly public
  2021.          conference (if didn't already have a users file),
  2022.       2) create a  "sub-board"   configuration file for the  CLONES "sub-board"
  2023.          (a file whose name would be ATARIC.DEF).
  2024.  
  2025.     The easiest way to make a "sub-board" configuration file is to use  the DOS
  2026.     copy command, starting with another configuration file as a model (e.g. the
  2027.     one  for the main  board).  To  continue with the CLONES  example you would
  2028.     issue the DOS command:
  2029.  
  2030.          COPY RBBS-PC.DEF  CLONESC.DEF
  2031.  
  2032.     Then invoke CONFIG.EXE to edit that file, using the form
  2033.  
  2034.          CONFIG CLONESC.DEF
  2035.  
  2036.     WARNING!!   When you create a .DEF file  by copying another one as a model,
  2037.     be sure to run CONFIG against this new file and change the message and user
  2038.     file names!  Otherwise your sub-board will share the user file with another
  2039.     message base.   Here change the  message file name  to CLONESM.DEF and  the
  2040.     user file  name to CLONESU.DEF.  The users file  name can be anything for a
  2041.     "sub-board"  but  the  extension .DEF  is  a  good  idea because  RBBS-PC's
  2042.     security system will  not let any file  with that extension be  downloaded.
  2043.     Remember, you do not want to allow callers to download any users file!  You
  2044.     get  an  extra layer  of  protection  if you  put  the  message, user,  and
  2045.     configuration files in an area not available for downloading.
  2046.  
  2047.     17.4 Conference File Locations
  2048.     ------------------------------
  2049.     The files that make up a conference or a sub-board can be placed in several
  2050.     locations.  Especially on multi-node BBSs, care must be taken when locating
  2051.     conference files.
  2052.  
  2053.     If  a  sub-board CONFIG  files exists,  it must  either  be in  the RBBS-PC
  2054.     default  directory, or  in  the directory  where the  MAIN message  file is
  2055.     located.   NOTE: If  a caller  joins a sub-board  from within  another sub-
  2056.     board, the  MAIN message file location  would be the location  of the first
  2057.  
  2058.  
  2059.  
  2060.     MESSAGE AREAS WITHIN RBBS-PC                                           17-5
  2061.  
  2062.  
  2063.     sub-board.  Once a sub-board CONFIG file is found, all other file locations
  2064.     will be set by the CONFIG file parameters.
  2065.  
  2066.     If  there is no  CONFIG file,  RBBS-PC will next  look for  a MESSAGE file.
  2067.     First, the subdirectory where the current MAIN message file is located will
  2068.     be searched, and then  the directory where the conference  description file
  2069.     is located (see CONFIG parameter 74) will be searched.
  2070.  
  2071.     To find the USER file, RBBS-PC first looks where the current MAIN user file
  2072.     is located, and then in the RBBS-PC default directory.
  2073.  
  2074.     This may seem complex, and for most SysOps, placing all CONFIG, MESSAGE and
  2075.     USER files in the  default subdirectory is  adequate.  CONFIG will  create,
  2076.     and  locate conference and sub-board  files properly when  parameter 167 is
  2077.     slected.
  2078.  
  2079.     17.5 Establishing a "Conference" or "Sub-board" SysOp
  2080.     -----------------------------------------------------
  2081.     RBBS-PC  has one of the  more flexible and  powerful systems for supporting
  2082.     "assistant SysOps" or  "conference moderators".   A moderator  need not  be
  2083.     made a full SysOp, and whatever security a moderator has, does not transfer
  2084.     to the rest of the board.   Moderators need the following basic functions:
  2085.  
  2086.       1) read and kill all messages,
  2087.       2) add and modify users, and
  2088.       3) forward mail to a better person to answer it.
  2089.  
  2090.     The  ability to do  user edits is  controlled by the  security specified by
  2091.     SysOp function 5.   Incidentally, moderators cannot edit user  records with
  2092.     security  higher than theirs.  The ability to read and kill all messages is
  2093.     controlled  by  a security  level specified  in  CONFIG.   RBBS-PC supports
  2094.     having  separate user  files  for every  message  area, so  that  moderator
  2095.     privileges in one area do not necessarily transfer to others.
  2096.  
  2097.     To set up a conference or sub-board moderator,  the SysOp need only
  2098.  
  2099.       1) "Join" the conference or sub-board.
  2100.       2) Use SysOp function 5  to enter the name of the user who  is to  be the
  2101.          conference chairperson into the conference's USERS file.
  2102.       3) Set  that users security  level in the  conference's USERS file   to a
  2103.          security  level that can issue the SysOp  function 5.  This will allow
  2104.          the conference chairman to add users.
  2105.       4) Set the minimum security to read and kill all messages to the level of
  2106.          the moderator.
  2107.       5) Set the  minimum security to  change the  minimum security  to read  a
  2108.          message to the  security level of the moderator.   This will allow the
  2109.          moderator to forward everyone's mail.
  2110.  
  2111.     Any registered  user can  join a  "public" conference  or sub-board.   When
  2112.     someone issues the J)oin command  to join a conference or sub-board,  their
  2113.     standard security  level is temporarily  superseded by  the security  level
  2114.     associated with  their user  name within that  conference's or  sub-board's
  2115.     USERS file if it is a "private" conference.
  2116.  
  2117.     For example,  a normal user  might be  given the security  required to  add
  2118.     users to a particular conference or sub-board USERS file since they are the
  2119.     SysOp of that message area.  When  a user joins the conference or sub-board
  2120.     of which they are chairman, their normal security is bumped up so that they
  2121.     can add users  to the USERS file of that particular message area.  When the
  2122.  
  2123.  
  2124.  
  2125.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    17-6
  2126.  
  2127.  
  2128.     same user  exits that message  area, their  security level  is returned  to
  2129.     normal.  If  they should subsequently join another  message area where they
  2130.     are not chairman, they would be unable to add  users to that message area's
  2131.     USERS  file.  Other than  a message area's SysOp, none  of the message area
  2132.     members should be given any higher security than they otherwise  enjoy as a
  2133.     regular RBBS-PC user.
  2134.  
  2135.  
  2136.  
  2137.     CALLERS AUTOMATIC NOTIFICATIONS OF MAIL WAITING                        18-1
  2138.  
  2139.  
  2140.     18. CALLERS AUTOMATIC NOTIFICATIONS OF MAIL WAITING
  2141.     ---------------------------------------------------
  2142.     RBBS-PC has the ability to notify  callers about mail waiting for them when
  2143.     they log on.  Callers can be notified for any pair of user/message files
  2144.  
  2145.          (a) how many new messages were left, and
  2146.          (b) whether any new messages are to them personally.
  2147.  
  2148.     RBBS-PC can be configured  such that the messages individually  reported by
  2149.     number  to the caller when  the caller logs on  are all messages (i.e. both
  2150.     old and new,  or just new messages since  the caller last logged on, or
  2151.     no messages  at all via CONFIG parameter 19.  Of course, RBBS-PC allows the
  2152.     SysOp to determine if callers are reminded of the mail they have left.
  2153.  
  2154.     In  a file specified in CONFIG parameter  93 (the default is CONFMAIL.DEF),
  2155.     the SysOp  can list the  message/user file  combinations to check  for mail
  2156.     waiting in the format
  2157.  
  2158.                <user file>,<message file>
  2159.  
  2160.     where these are related conference file names.  If it is assumed that RBBS-
  2161.     PC is running in a DOS  subdirectory off of the main root directory  of the
  2162.     "C:" drive  and that there are  two conferences, RBBS-PC and  BETA, then an
  2163.     example of the contents of the CONFMAIL.DEF file is:
  2164.  
  2165.                 C:\RBBS\BETAU.DEF,C:\RBBS\BETAM.DEF
  2166.                 C:\RBBS\RBBS-PCU.DEF,C:\RBBS\RBBS-PCM.DEF
  2167.  
  2168.     The names are processed exactly as typed, so inclusion of the drive/path is
  2169.     necessary.   The SysOp controls  what conferences get  checked for mail  by
  2170.     listing  these file  pairs.   Conferences not  listed will not  be checked.
  2171.     Callers  will get a report only for conferences  that they are a member of.
  2172.     Two items of information are reported:
  2173.  
  2174.          number of new messages since last in the conference, and
  2175.          whether any new messages are address to the caller.
  2176.  
  2177.     The name used in RBBS-PC for the  main message base is taken from the  file
  2178.     name for the message base.  As with conferences - if the prefix of the user
  2179.     file  ends with  "M", the name  will be  the composed  of all but  the last
  2180.     character.  If the name is "MESSAGES", it will be called "MAIN".  Otherwise
  2181.     the main message base will be called the full prefix.
  2182.  
  2183.     The main message  base and users file can be included  in the list to scan.
  2184.     You may  want to coordinate the USERS  and MESSAGES file names  in the same
  2185.     fashion  that conference user files and message file names are coordinated.
  2186.     If the main message  base is to be known  as TOP then call it  TOPM.DEF and
  2187.     call the users TOPU.DEF.  RBBS-PC will just as well with the default  names
  2188.     USERS and MESSAGES and call the main message base MAIN.
  2189.  
  2190.     There are 3 philosophies that can be implemented on message reporting using
  2191.     the CONFIG parameter 19:
  2192.  
  2193.       1) Report everything.
  2194.       2) Make a fast minimal report.
  2195.       3) Make an optimum intermediate report.
  2196.  
  2197.     Reporting everything  means reminding  callers of  messages they  left, and
  2198.     give the messages numbers of old and new mail.   To do this it is necessary
  2199.  
  2200.  
  2201.  
  2202.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    18-2
  2203.  
  2204.  
  2205.     to set configuration parameters to remind callers of old mail and to report
  2206.     ALL messages to caller.  Also place "sub-boards" and private conferences in
  2207.     the mail scan list of CONFMAIL.DEF.
  2208.  
  2209.     Making a fast minimal report means that callers will not be reminded of old
  2210.     messages, specific message numbers will not be list, only the number of new
  2211.     messages and whether any are personal will be reported.  This option is for
  2212.     when  you want people  to get the  caller to  the command level  as fast as
  2213.     possible.  For example, the main message base is not even used.  To do this
  2214.     set  configuration parameters  to NOT  remind callers  of old  mail and  to
  2215.     report NO messages to  caller.  Put the main message base  as well as "sub-
  2216.     boards" and private conferences in the mail scan list of CONFMAIL.DEF.
  2217.  
  2218.     Providing an optimum intermediate report means reporting individual message
  2219.     numbers only for the new mail as well as # of new messages (and whether any
  2220.     personal).  The best way to implement this is to set the level of reporting
  2221.     messages  to the caller to New Only and to put all "sub-boards" and private
  2222.     conferences in the mail scan list of CONFMAIL.DEF.  Set CONFIG parameter 21
  2223.     to NOT remind callers of old mail.
  2224.  
  2225.  
  2226.  
  2227.     RBBS-PC QUESTIONNAIRE FACILITIES                                       19-1
  2228.  
  2229.  
  2230.     19. RBBS-PC QUESTIONNAIRE FACILITIES
  2231.     ------------------------------------
  2232.     RBBS-PC  provides a  script-driven  questionnaire facility.   RBBS-PC  will
  2233.     process a questionnaire when a  NEW caller logs in, before any  caller logs
  2234.     off, or the user can select a questionnaire from  a menu.  To ask new users
  2235.     questions  the file  named  in CONFIG  parameter  84 must  exist.   To  ask
  2236.     questions  of users  when  they  say  G>oodbye the  file  named  in  CONFIG
  2237.     parameter 85 must exist.  Questionnaires can also raise or lower the user's
  2238.     security  level based on his/her  responses.  Answers  to the questionnaire
  2239.     are appended to a file specified in each questionnaire script.
  2240.  
  2241.     RBBS-PC  will only activate the  corresponding script files  if they exist,
  2242.     otherwise the functions are bypassed.
  2243.  
  2244.     The questionnaire script processor supports:
  2245.  
  2246.        - Branch to labels (forward and back branching)
  2247.        - Display lines
  2248.        - Display line and get response
  2249.        - Response validation (Multiple choice)
  2250.        - Numeric validation
  2251.        - Raising and lowering user security level
  2252.        - Aborting the questionnaire
  2253.        - Chaining to another questionnaire
  2254.        - Invoke a macro from within a questionnaire
  2255.        - "Turbo" key can be turned on from within a questionnaire
  2256.  
  2257.     The first line in  every script file must  contain the file name where  the
  2258.     responses to the script will be appended, and the maximum  security level a
  2259.     user  can be  raised to.   The  rest  of each  script file  contains script
  2260.     commands.  Script commands are 1 character  in length and must be in column
  2261.     1 of each script line.
  2262.  
  2263.     Following is a list and description of valid script commands:
  2264.  
  2265.       :  A colon indicates a label command
  2266.       *  An asterisk indicates a display data command
  2267.       ?  A question mark indicates a display and wait for response command
  2268.       =  An equal sign indicates a multiple choice branch command
  2269.       >  A greater than symbol indicates a goto command
  2270.       +  A plus sign indicates a raise security level command
  2271.       -  A minus sign indicates a lower security level command
  2272.       @  An "at" sign means to abort questionnaire and do not write results
  2273.       &  An ampersand means to establish a questionnaire chain
  2274.       T  The letter "T" turns on the "turbo" key mode
  2275.       M  The letter "M" executes a "macro"
  2276.       >  Assigns a value to a work variable
  2277.  
  2278.     CONFIG parameter 94 controls the maximum  number of work variables that can
  2279.     be handled by questionnaires.
  2280.  
  2281.     RBBS-PC   questionnaires   even   support   "graphics"   versions   of  the
  2282.     questionnaires.  Graphics  versions use the  standard convention of  ending
  2283.     the  filename with "C" for color graphics  and "G" for ansi graphics.  E.g.
  2284.     HLPRBBSC.DEF and HLPRBBSG.DEF are graphics versions of HLPRBBS.DEF.
  2285.  
  2286.  
  2287.  
  2288.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    19-2
  2289.  
  2290.  
  2291.     19.1 Branching to Labels
  2292.     ------------------------
  2293.     :  Colon (Label command)
  2294.        This command is used  to provide labels that can be branched to from =
  2295.     and > commands.
  2296.  
  2297.               :QUESTION1
  2298.  
  2299.     Numeric labels are  not recommended because they  are easy to  confuse with
  2300.     work  variables.   SmartText  variables will  be  interpreted as  such, eg.
  2301.     ":-{FN"  will substitute  the  user's  first  name.    SmartText  and  Work
  2302.     Variables are  dynamically substituted into  all questionnaire lines.   For
  2303.     example,
  2304.  
  2305.               >-.[8].-
  2306.  
  2307.     will substitute the  value of work variable 8  for "[8]", so that if  8 has
  2308.     "edit" as its value, it will go to the  label "-.edit.-".
  2309.  
  2310.     The ability to  get and substitute values,  and to have  graphics versions,
  2311.     means that questionnaires  can support many of the features  of full screen
  2312.     editing, including transmitting a template, then overlaying values into the
  2313.     template.  An example that shows the power of questionnaires is
  2314.  
  2315.               ?29Change what field (1,2,...20)
  2316.               ?[29]Change field [29]. from [[29]] to
  2317.  
  2318.     This asks which field to change and stores answer in work variable 29 (i.e.
  2319.     value of work variable 29  is "7").    The second question then stores  the
  2320.     answer  in the value  of work  variable 29, displays  the name  of the work
  2321.     field being  changed, and then displays the old value of the work variable.
  2322.     Suppose that the value  of work variable 7 is  "Yes".   Then the  series of
  2323.     substitutions RBBS-PC makes into the second line before executing it are:
  2324.  
  2325.               ?7Change field [29]. from [[29]] to
  2326.               ?7Change field 7. from [[29]] to
  2327.               ?7Change field 7. from [7] to
  2328.               ?7Change field 7. from Yes to
  2329.  
  2330.     19.2 Display Data Command
  2331.     -------------------------
  2332.     *  Asterisk (Display data command)
  2333.        This  command is used  to send  data to the  user.   SmartText and Macro
  2334.     commands are interpreted before display (see section 7.8).  "*/FL" will not
  2335.     display the "/FL"  because it is  interpreted as a  macro command.  If  you
  2336.     want to work  variables to overlay a display  template, keeping it's length
  2337.     (e.g. for columnar display), put  "/FL" after the "*".  E.g.  if variable 1
  2338.     has value "12345" and 2 has "abcdef", then
  2339.  
  2340.               */FL.[1]....[2]......
  2341.  
  2342.          will display ".12345..abcdef...", whereas
  2343.  
  2344.               *.[1]....[2]......
  2345.  
  2346.          will display ".12345....abcdef......".
  2347.  
  2348.     One of  the more useful capabilities of macros that questionnaires can make
  2349.     use of is the ability to append data to any work file, where work variables
  2350.  
  2351.  
  2352.  
  2353.     RBBS-PC QUESTIONNAIRE FACILITIES                                       19-3
  2354.  
  2355.  
  2356.     are merged into a form.   This allows the questionnaire data to be saved in
  2357.     virtually any format desired.
  2358.  
  2359.     The other extremely useful macro capability that questionnaires can utilize
  2360.     is the ability to retrieve data from a file into a form, in effect adding a
  2361.     data based file retrieval capability.
  2362.  
  2363.     19.3 Display Data And Get Response
  2364.     ----------------------------------
  2365.     ?  Question mark (Display data and get response)
  2366.        This command is used to send data to the user and wait for a response.
  2367.      The user will be required to input a response.  The ENTER key alone  is an
  2368.     invalid response.  No other checks are made.
  2369.  
  2370.               ?DO YOU OWN YOUR OWN PC? (Y/N)
  2371.  
  2372.     The prompt command accepts an  optional number which is interpreted as  the
  2373.     number of the Work Variable to store the answer in.  For example, "
  2374.  
  2375.               ?8Enter Dept
  2376.  
  2377.     will store the  answer not only in the regular way  for a questionnaire but
  2378.     also in work variable 8.
  2379.  
  2380.     19.4 Multiple Choice Response
  2381.     -----------------------------
  2382.     =  Equal sign (Response validation - Multiple choice)
  2383.        This  command  is  used  in conjunction  with  the  ?  command  and must
  2384.     immediately follow the ? command for which it applies.  This command allows
  2385.     for  checking/editing of  single  character responses  to  the preceding  ?
  2386.     command and  allows branch  logic to  be exercised  based  on the  response
  2387.     given.   Multiple = commands must  be coded on  the same line.   The format
  2388.     follows:
  2389.  
  2390.        =AXXXXXXXXX=BYYYYYYYYY= ZZZZZZZZZZ
  2391.  
  2392.       =  Indicates that a single character comparison value follows
  2393.       A  Is the comparison value
  2394.       X  Is the label to branch to if the response is "A"
  2395.       =  Indicates that a single character comparison value follows
  2396.       B  Is the comparison value
  2397.       Y  Is the label to branch to if the response is "B"
  2398.       =  Indicates  that a  single character  comparison value  follows (SPACE)
  2399.          This is a  special comparison value  that is always  used as the  last
  2400.          comparison value and means "INVALID" response given
  2401.       Z  Is the label to branch to if an invalid response is given
  2402.  
  2403.        Maximum line length is 255 characters and the last = on the line "MUST"
  2404.        have a comparison value of " " (SPACE).
  2405.  
  2406.               :QUESTION1
  2407.               ?Do you run a BBS system.  (Y/N)
  2408.               =YQUESTION2=NQUESTION2= QUESTION1E
  2409.               :QUESTION1E
  2410.               *Please respond Y or N
  2411.               >QUESTION1
  2412.               :QUESTION2
  2413.  
  2414.  
  2415.  
  2416.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    19-4
  2417.  
  2418.  
  2419.        There is an additional format for the = command, where the comparison
  2420.     value of # (Pound  sign) is used.   This is used as a  numeric check and
  2421.     encompasses 0-9,  (), - and  space.  This format  requires two entries.
  2422.     The first is to  test for numerics and the second is the invalid response
  2423.     branch label (e.g. "=#QUESTION3= QUESTION2E").
  2424.  
  2425.     19.5 Forward And Backward Branching
  2426.     -----------------------------------
  2427.     >  Greater than sign (Forward and backward branching)
  2428.        This  command is used to  branch to specific labels  within the script
  2429.     file.
  2430.  
  2431.               >QUESTION4
  2432.  
  2433.     19.6 Raise/Lower User's Security Level
  2434.     --------------------------------
  2435.     +  Plus sign (Raise user security level)
  2436.  
  2437.     This command  will add the value in  columns 2-6 to the  default security
  2438.     level given new users or the current security level of old users.
  2439.  
  2440.               +5
  2441.  
  2442.     -  Minus sign (Lower user security level)
  2443.  
  2444.     This  command will  subtract the  value in  columns 2-6  to the  default
  2445.     security given new users or the current security level of old users.
  2446.  
  2447.               -1
  2448.  
  2449.     19.7 Abort Questionnaire
  2450.     ------------------------
  2451.     @  At sign (Abort questionnaire)
  2452.  
  2453.     This command will terminate the questionnaire and NOT write the response
  2454.     to the output file as in the following example.
  2455.  
  2456.               :QUESTION1
  2457.               ?Have you answered the questionnaire before.  (Y/N)
  2458.               =YQUESTION2=NQUESTION3= QUESTION1E
  2459.               :QUESTION1E
  2460.               *Please respond Y or N
  2461.               >QUESTION1
  2462.               :QUESTION2
  2463.               @
  2464.               :QUESTION3
  2465.  
  2466.     19.8 Chain Questionnaire
  2467.     ------------------------
  2468.     & Ampersand (Chain questionnaire)
  2469.  
  2470.     This command  will establish the next questionnaire in the chain.  The file
  2471.     named  in  columns 2-80  will  be used  as  a continuation  to  the current
  2472.     questionnaire when the current questionnaire reaches its last line.
  2473.     i.e.   &L:\RBBS\QUESCONT.DEF
  2474.  
  2475.     19.9 Turbo Keys
  2476.     ---------------
  2477.     T Turbo Key
  2478.  
  2479.  
  2480.  
  2481.     RBBS-PC QUESTIONNAIRE FACILITIES                                       19-5
  2482.  
  2483.  
  2484.     This is used to  turn on Turbo Key for a prompt where a single keystroke is
  2485.     expected.  TurboKey  causes the next  keystroke to be  taken as the  answer
  2486.     immediately without having to press Enter, if the caller has TurboKey on.
  2487.  
  2488.     19.10 Macro Execute
  2489.     -------------------
  2490.     M Macro Execute
  2491.  
  2492.     This command is used to execute  a specified macro named after the command,
  2493.     e.g. "M C:\RBBS\FIZ.IMC".   Control  returns to the  questionnaire after  a
  2494.     macro is executed.   One of  the most important capabilities macros add  to
  2495.     questionnaires is  the ability  to append  data to any  file in  any format
  2496.     desired.   Hence the data in questionnaires can be saved where ever desired
  2497.     in whatever format desired.  If a macro saves  the data and you do not want
  2498.     the  normal output  on  completion of  the  questionnaire, just  abort  the
  2499.     questionnaire at  the end.  Macros  also have the ability  to retrieve data
  2500.     from files and then display on the screen.
  2501.  
  2502.     19.11 Assign Value
  2503.     ------------------
  2504.     < Macro Assign
  2505.  
  2506.     This command  assigns a value  to a work  variable.   For example, "<2  XT"
  2507.     assigns value "XT" to work variable 2.
  2508.  
  2509.  
  2510.  
  2511.     RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS                      20-1
  2512.  
  2513.  
  2514.     20. RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS
  2515.     -----------------------------------------------------
  2516.     RBBS-PC  includes  a  flexible  interface  for  implementing  file-transfer
  2517.     protocols.  A  "protocol" for  the  exchange  of files  is  just  a set  of
  2518.     cooperative  conventions that  allow two  different computer's  software to
  2519.     transfer  files  between themselves.    RBBS-PC  supports four  "protocols"
  2520.     within its own BASIC source code -- ASCII, Xmodem (checksum), Xmodem (CRC),
  2521.     and 1K-Xmodem.  These are totally configurable by the SysOp when setting up
  2522.     RBBS-PC.
  2523.  
  2524.     In addition to these four "protocols" and in order to  provide advocates of
  2525.     specific  protocols   a  means  of   adding  their  particular   flavor  of
  2526.     communications protocol to  RBBS-PC, a standard interface  has been created
  2527.     so  that  "external" protocols  can be  installed  in RBBS-PC.   "External"
  2528.     protocols are simply defined  as programs outside of RBBS-PC  which perform
  2529.     the file transfer.
  2530.  
  2531.     Before calling "external" protocol drivers, RBBS-PC will do the following:
  2532.  
  2533.       1) verify that the file exists if the file is to be downloaded.
  2534.       2) for uploads, verify that the file name requested is valid.
  2535.       3) pass control of the communications port to the external protocol.
  2536.  
  2537.     RBBS-PC  will call  the  external protocol  drivers  either via  the  SHELL
  2538.     command in BASIC or via a .BAT file.
  2539.  
  2540.     20.1 Parameters passed to a protocol driver
  2541.     -------------------------------------------
  2542.     RBBS-PC detects the installation of external file transfer protocols via an
  2543.     optional RBBS-PC system  file whose default name is PROTO.DEF.   If no such
  2544.     file  exists, only internal protocols  will be available  -- Ascii, Xmodem,
  2545.     XmodemCRC, 1K-Xmodem.   This file may be  used to rename or  delete some or
  2546.     all of  RBBS-PC's internal protocols.   If a PROTO.DEF file  exists, all of
  2547.     RBBS-PC's internal  protocols must be  specified in it  as well.   Internal
  2548.     protocols are NOT automatically included when a PROTO.DEF file exists!
  2549.  
  2550.     The protocol definition file  has thirteen (13) parameters passed  for each
  2551.     external protocol defined for RBBS-PC.  Each parameter can be on a separate
  2552.     line of  its own or all  parameters can be  on a single line  (separated by
  2553.     commas).  The parameters passed for each protocol specified are:
  2554.  
  2555.          Parameter      Description
  2556.  
  2557.                1        Protocol Name
  2558.                2        Security Level required to use protocol
  2559.                3        Method to invoke protocol
  2560.                4        Whether 8 bit connection required
  2561.                5        Whether "reliable" connection required
  2562.                6        Whether "batch" mode supported
  2563.                7        Number of bytes in a block transferred
  2564.                8        Indicate transfer always successful
  2565.                9        Factor to estimate file transfer time
  2566.               10        RBBS-PC "macro" to invoke before protocol
  2567.               11        Method for checking transfer's success
  2568.               12        Template to use for downloading
  2569.               13        Template to use for uploading
  2570.  
  2571.     Protocol  Name  -- The  FIRST CHARACTER  is the  letter  by which  a caller
  2572.     selects the protocol.   The prompt for the  selection of protocol  includes
  2573.  
  2574.  
  2575.  
  2576.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    20-2
  2577.  
  2578.  
  2579.     the protocol  name.  It is recommended that the  second character be ")" to
  2580.     resemble the rest of the prompts in RBBS-PC, e.g. "Z)modem".   RBBS-PC will
  2581.     normally put  each protocol on the  same line, separated by  a comma, until
  2582.     the line gets too long.  The SysOp can control the placement of the line by
  2583.     putting a  carriage return line feed at  the end of the  protocol name.  If
  2584.     this  is done,  the  entire protocol  name  must be  in  parentheses.   For
  2585.     example, instead of the prompt
  2586.  
  2587.     A)scii,X)modem,C)rcXmodem,Y)modem,N)one
  2588.  
  2589.     a SysOp may want the prompt to be
  2590.  
  2591.     A)scii (text files only)
  2592.     X)modem checksum
  2593.     C)rc Xmodem
  2594.     Y)modem (1K Xmodem)
  2595.     N - None (cancel)
  2596.  
  2597.     Then  the protocol definition file , PROTO.DEF, should be constructed using
  2598.     quotes (to include the carriage return/line feed in the first parameter) as
  2599.     follows:
  2600.  
  2601.     "A)scii (text files only)
  2602.     ",...
  2603.     "X)modem checksum
  2604.     ",...
  2605.     "C)rc Xmodem
  2606.     ",...
  2607.     "Y)modem (1K Xmodem)
  2608.     ",...
  2609.     "N - None (cancel)
  2610.     ",...
  2611.  
  2612.     with the remaining 12 parameters put where "..." occurs.
  2613.  
  2614.     Security  Level --  This is  the minimum  security to  be able  to  use the
  2615.     protocol being described.
  2616.  
  2617.     Method to  Invoke Protocol  -- A protocol  can be invoked  by one  of three
  2618.     methods:
  2619.              shell,
  2620.              door, or
  2621.              internal (S, D, or I).
  2622.  
  2623.     If "I" is specified, it must be immediately followed by a letter specifying
  2624.     what internal  protocol to  use, where  the choices are  A, X,  C, Y,  or N
  2625.     respectively for  Ascii, Xmodem, Xmodem CRC, 1K-X(Y)modem,  or None (cancel
  2626.     transfer).  "IC" would  mean to use RBBS-PC's internal  Xmodem CRC.  If  no
  2627.     protocol is specified equivalent  to the internal "None", RBBS-PC  will add
  2628.     it.  If the letter N is used for a transfer protocol, another protocol must
  2629.     be specified that is equivalent to "None".
  2630.  
  2631.     Whether to Require 8 Bit -- By  putting "8" in this parameter, the SysOp is
  2632.     specifying that  the protocol  requires the  caller to be  able to  send or
  2633.     receive 8 data bits.  If 8 data bits is required and the caller is not at 8
  2634.     bit, RBBS-PC will prompt the caller to change to  8 bit in order to use the
  2635.     protocol.
  2636.  
  2637.  
  2638.  
  2639.     RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS                      20-3
  2640.  
  2641.  
  2642.     Whether  A Reliable  Connection  Is Required  --  By  putting "R"  in  this
  2643.     parameter,  the SysOp is specifying that the  protocol will not be shown or
  2644.     made available  to the caller unless the connections is reliable (i.e. such
  2645.     as Microcom's MNP protocol that is built into many modems).
  2646.  
  2647.     Whether Batch is  supported -- By putting "B" in  this parameter, the SysOp
  2648.     is  indicating that "batch" file  transfers are allowed  with the protocol.
  2649.     "Batch" means a multi-file  download request will be processed  together.
  2650.     RBBS-PC  enters  an  external  protocol  only  once  to  do  multiple  file
  2651.     downloads.   RBBS-PC has been  tested with  such "batch" protocols  as Omen
  2652.     Technologies' DSZ Zmodem, Megalink, and Sealink.
  2653.  
  2654.     Blocksize  -- This parameter  indicates the number  of bytes in  each block
  2655.     transferred.   This is only used to inform the  caller the number of blocks
  2656.     to expect when  downloading.  A zero in this  parameters will cause RBBS-PC
  2657.     to report only the number of bytes to expect.  For Xmodem or XmodemCRC this
  2658.     value would be 128.  For Ymodem this value would be 1024.
  2659.  
  2660.     Indicate Transfers Always Successful -- If there is no way for the protocol
  2661.     to  inform RBBS-PC  if  a  transfer  was  successful, put  a  "F"  in  this
  2662.     parameter, which stands  for "Fake" a success report.   This means that all
  2663.     transfers will be regarded as successful.
  2664.  
  2665.     Zmodem  (DSZ)  used  in a  multi-tasking  DOS  environment  (where the  DOS
  2666.     environment  variables are shared) and CLINK are examples of protocols that
  2667.     require this to be set.
  2668.  
  2669.     Factor to Estimate File Transfer Time -- This is the decimal number used by
  2670.     RBBS-PC  to estimate  the elapse time  to download  a file.  The higher the
  2671.     number, the faster the protocol and the lower the time estimate.   Standard
  2672.     equivalents in RBBS-PC are:
  2673.  
  2674.          Ascii ......... 0.92
  2675.          Xmodem ........ 0.78
  2676.          XmodemCRC ..... 0.78
  2677.          Kermit ........ 0.78
  2678.          Ymodem ........ 0.87
  2679.          Imodem ........ 0.90
  2680.          YmodemG ....... 0.95
  2681.          Windowed xmodem 0.78
  2682.  
  2683.     If no value is specified, a default of 0.87 will be used.
  2684.  
  2685.     RBBS-PC "Macro" to  Invoke Before Protocol --  This is the RBBS-PC  "macro"
  2686.     (i.e. a series of standard RBBS-PC commands) to invoke  before invoking the
  2687.     protocol.  It can be used  to display special messages, to delay the  start
  2688.     of  the protocol,  or  to  prompt for  special  information passed  to  the
  2689.     protocol.
  2690.  
  2691.     Method  for  Checking  Transfer's Success  --  This  is  required only  for
  2692.     external protocols.   This parameter indicates  how RBBS-PC is to  detect a
  2693.     file transfer's failure.  The format is "x=y=z" where:
  2694.          x    is which parameter tells whether the transfer was successful,
  2695.          y    is the string which indicates failure, and
  2696.          z    is  an optional parameter  telling RBBS-PC  whether to  write out
  2697.               information needed when DOORing  to a protocol in advance  of the
  2698.               file exchange.
  2699.  
  2700.  
  2701.  
  2702.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    20-4
  2703.  
  2704.  
  2705.     For QMXFER.EXE  from John Friel and the Forbin Project, this would be "4=F"
  2706.     - meaning the 4th parameter indicates failure if it begins with "F".
  2707.  
  2708.     For Zmodem as implemented  in DSZ from Omen Technologies, the proper choice
  2709.     depends on  whether SHELLing  or DOORing is  used.    For SHELLing,  put in
  2710.     "1=E" to  indicate that the first  parameter uses "E" to  indicate an error
  2711.     has occurred.   For DOORing,  put in  "4=E=A" to indicate  that the  fourth
  2712.     parameter uses "E" when an error has occurred.  The "=A" means that RBBS-PC
  2713.     is to  do an advance  write of the  filename and protocol  used.   DSZ then
  2714.     appends its error report to the log file.   To the file "XFER-" plus node #
  2715.     plus ".DEF" RBBS-PC will write out a line containing "<filename>,,<protocol
  2716.     letter>".  Omitting an "=" causes a default to "4=F".   The file checked is
  2717.     "XFER-" plus the node number plus the extension "DEF".   On node 1 the file
  2718.     checked is "XFER-1.DEF".
  2719.  
  2720.     Template  to Use  for Downloading  -- This  is required  only for  external
  2721.     protocols.  It tells RBBS-PC how to invoke a download.  See section 20.2.
  2722.  
  2723.     Template to  Use  for  Uploading --  This  is required  only  for  external
  2724.     protocols.  It tells RBBS-PC how to invoke an upload.
  2725.  
  2726.     20.2 Calling external protocols using "templates"
  2727.     -------------------------------------------------
  2728.     A "template" is used to inform  RBBS-PC how to invoke an external protocol.
  2729.     The  first  word of  the template  must be  the  file name  (including file
  2730.     extension) of the program to invoke.   RBBS-PC will check to make sure that
  2731.     the file exists.  If the file does not exist, the protocol will not be made
  2732.     available to the caller.
  2733.  
  2734.     RBBS-PC will dynamically substitute values for pre-defined strings inside a
  2735.     "template".   Each supported  string is enclosed  in square brackets.   The
  2736.     strings supported include:
  2737.  
  2738.     [n]       where n is a positive integer.  Substitutes value in a work array
  2739.               Macros  can store the prompted values in specific elements in the
  2740.               array.
  2741.  
  2742.     [FILE]    Name of the file (FILE.NAME$) to be transferred.
  2743.  
  2744.     [BAUD]    Baud rate.  Speed at which the caller dialed RBBS-PC.
  2745.  
  2746.     [PARITY]  Parity used by the caller.
  2747.  
  2748.     [PORT]    DOS device name for the communications port to be used for the
  2749.               file transfer (COM1,COM2, etc.).
  2750.  
  2751.     [PORT#]   Number  of  the  communications port  to  be  used  for the  file
  2752.               transfer (1,2,3, etc.).
  2753.  
  2754.     [NODE]    Number of the RBBS-PC node invoking the file transfer (1,2,3,
  2755.               etc.).
  2756.  
  2757.     [PROTO]   Letter of the protocol for the file transfer.
  2758.  
  2759.     Everything else in a template will be passed intact.   If the external file
  2760.     transfer  is to be invoked via a SHELL, it is recommended that the external
  2761.     file  transfer  program  be SHELLed  to  directly.   If  the  external file
  2762.     transfer is to be invoked via a DOOR, it can be either
  2763.  
  2764.  
  2765.  
  2766.     RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS                      20-5
  2767.  
  2768.  
  2769.       1) DOORed to directly using the same template as for SHELLing, or
  2770.  
  2771.       2) DOORed  to  indirectly via  a .BAT  file  with the  command parameters
  2772.          passed  to it by RBBS-PC.  For example, a "door" for QMXFER might have
  2773.          a download template of:
  2774.  
  2775.     "RBBSQM.BAT [FILE] [PORT] [BAUD] [PROTO]"
  2776.  
  2777.     and the file RBBSQM.BAT have the following in it:
  2778.  
  2779.               C:QMXFER.COM -s -f %1 -l %2 -c -b %3 -p %4
  2780.  
  2781.     DOS  substitutes the passed parameters for the variables beginning with the
  2782.     percent  sign.  .BAT files are needed  if additional programs to run before
  2783.     or after the actual file transfer.
  2784.  
  2785.     The following examples  should provide  some help in  understanding how  to
  2786.     invoke external protocols:
  2787.  
  2788.     Example #1:
  2789.  
  2790.     Z)ippy,5,S,8,,,,,0.98,,,"c:\utl\zippy -s [FILE]","c:\utl\zippy -r [FILE]"
  2791.  
  2792.     Can be interpreted to be:
  2793.          used "Z" as invoking letter,
  2794.          put "Z)ippy" in the prompt,
  2795.          the minimum security to use this protocol is 5,
  2796.          the protocol will be invoked via a SHELL command,
  2797.          an 8-bit connection is required,
  2798.          estimate the download time as 0.98 times as fast as normal,
  2799.          use normal RBBS-PC type of report to check for a successful transfer,
  2800.          invoke the protocol for downloads using the following string:
  2801.               "c:\utl\zippy -s [FILE]"
  2802.          and invoke the protocol for uploads using the following string:
  2803.               "c:\utl\zmodem -r [FILE]"
  2804.          where the file name is substituted for "[FILE]" in either case.
  2805.  
  2806.     Example #2:
  2807.  
  2808.     X)modem,5,IX,8,,,128,,0.8,,,,
  2809.  
  2810.     Can be interpreted to be:
  2811.          used "X" as invoking letter,
  2812.          put "X)modem" in the prompt,
  2813.          the minimum security to use this protocol is 5,
  2814.          the protocol is an internal RBBS-PC protocol,
  2815.          an 8-bit connection is required, and
  2816.          estimate the download time as 0.8 times as fast as normal.
  2817.  
  2818.     20.3 Parameters Returned by a Protocol Driver
  2819.     ---------------------------------------------
  2820.     All  protocol drivers  are expected  to return  information about  the file
  2821.     transfer in a file named XFER-xx.DEF where  the value for xx is the node ID
  2822.     (1 to 36).  If the protocol cannot accommodate this minimal requirement, it
  2823.     can still  be used by telling RBBS-PC to indicate file transfers are always
  2824.     successful -- section 20.1, parameter 8.
  2825.  
  2826.     The  one item  of  information  RBBS-PC requires  to  be returned  from  an
  2827.     external protocol drive is whether or not the file transfer was successful.
  2828.  
  2829.  
  2830.  
  2831.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    20-6
  2832.  
  2833.  
  2834.     The  failure indicator  MUST  BE  the  first  character  of  any  specified
  2835.     parameter in the file XFER-xx.DEF.  To show that file transfer failures are
  2836.     indicated  by   the  first  parameter  and  the  letter  "E"  in  the  file
  2837.     XFER-xx.DEF, parameter 11 (as  described in section 20.1) would  be written
  2838.     as "1=E".  To show that file  transfer failures are indicated by the fourth
  2839.     parameter and the letter "F",  parameter 11 (as described in section  20.1)
  2840.     would be written as "4=F".
  2841.  
  2842.     No  other information is required  when SHELLing to  external file transfer
  2843.     protocols.  However, when  DOORing to external file transfer  protocols the
  2844.     log file for the transfer MUST HAVE the file name as the first parameter.
  2845.  
  2846.     Protocol drivers that do not have the  file name as the first parameter can
  2847.     still be used by telling RBBS-PC to write out three  parameters (file name,
  2848.     an empty parameter, and  the letter of the  file transfer protocol)  before
  2849.     invoking the  external file protocol.   This is done by  using parameter 11
  2850.     (as described in section 20.1).  As an example, to DOOR to an external file
  2851.     transfer  protocol  that indicates  a file  transfer  failure by  using the
  2852.     letter "F" in the fourth parameter, but which does not return the file name
  2853.     used, parameter  11 (as  described in  section 20.1)  would  be written  as
  2854.     "4=F=A".   The external protocol would  then append its own  information to
  2855.     the log file.
  2856.  
  2857.     20.4 The Protocol Drivers Tested With RBBS-PC
  2858.     ---------------------------------------------
  2859.     RBBS-PC has been tested with the following protocol drivers:
  2860.  
  2861.     CLINK     From  System  Enhancement  Associates.     Supports  batch   file
  2862.               transfers,   but  requires  that   transfers  always  be  assumed
  2863.               successful.
  2864.  
  2865.     DSZ       From Omen Technologies.   Supports Ymodem, Ymodem Batch, YmodemG,
  2866.               and  Zmodem.  YmodemG requires a "reliable" connection.  DSZ logs
  2867.               the results  of the file  transfers to  a file  specified in  the
  2868.               environment variable  DSZLOG.   Therefore, the AUTOEXEC.BAT  file
  2869.               for an RBBS-PC that uses DSZ should specify
  2870.  
  2871.                    "SET DSZLOG=XFER-x.DEF"
  2872.  
  2873.               where  x is the  node number.   DSZ seems unable  to create a log
  2874.               file whenever a drive  or path is specified.   If invoking ZMODEM
  2875.               via the  DOOR mechanism, use  the "=A" option  at the end  of the
  2876.               success  method check so that RBBS-PC will append the information
  2877.               to  the DSZ  log it needs  and DSZ  will then  append the success
  2878.               report.     In  a   multi-user  environment  where   a  different
  2879.               environment variable for each node can not be specified (i.e. all
  2880.               nodes  must  share  the same  DSZ  log  file),  specify that  all
  2881.               transfers are always successful for protocols handled via DSZ.
  2882.  
  2883.     MLINK     MEGALINK protocol supports batch file transfers but requires that
  2884.               transfers always be assumed successful.
  2885.  
  2886.     PC-KERMIT from Columbia University.  PCKERMIT.EXE is supplied by The Source
  2887.               as  a  public  service  and consists  of  sliding  window  KERMIT
  2888.               protocol.  The  development  of  "windowing"  within  the  KERMIT
  2889.               architecture  (i.e. Super  KERMIT) was funded  by The  Source and
  2890.               implemented by Larry Jordan and Jan van der Eijk.
  2891.  
  2892.  
  2893.  
  2894.     RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS                      20-7
  2895.  
  2896.  
  2897.               Columbia University holds the  copyright and maintains the Kermit
  2898.               protocol. Like  RBBS-PC, Columbia University allows  KERMIT to be
  2899.               passed along  to others  and "ask  only that profit  not be  your
  2900.               goal, credit be given where  it is due, and that new  material be
  2901.               sent  back  to us  so  that  we  can  maintain a  definitive  and
  2902.               comprehensive set of KERMIT implementations".
  2903.  
  2904.               PCKERMIT.EXE is not a terminal program.  It simply implements the
  2905.               Kermit protocol, including the sliding window extension.  It will
  2906.               work  with older  "Kermit Classic"  implementations as  well, via
  2907.               automatic   negotiation  between   the   two   Kermit   programs.
  2908.               PCKERMIT.EXE  runs  as a  "one-shot"  execution  then returns  to
  2909.               RBBS-PC.  PCKERMIT  does not  establish a carrier  with a  remote
  2910.               system.    The  connection  is  established  by  RBBS-PC.    File
  2911.               transfers must always be assumed successful.
  2912.  
  2913.     QMXFER    is   supplied  by  The  Forbin   Project.    It  supports  XMODEM
  2914.               (checksum), XMODEM  (CRC), YMODEM, YMODEMG, and  IMODEM.  YMODEMG
  2915.               and IMODEM  are designed to  work when the  link between the  two
  2916.               modems  is "error free" (i.e.  both modems have  the MNP protocol
  2917.               built  in).   QMXFER.COM  runs as  a  "one-shot" execution,  then
  2918.               returns to RBBS-PC.   QMXFER does not establish a carrier  with a
  2919.               remote system.  The  connection is established by RBBS-PC.   File
  2920.               transfer failures are indicated by an "F" in the fourth parameter
  2921.               of the log file returned to RBBS-PC.
  2922.  
  2923.     WXMODEM   is supplied by The Forbin Project, and supports the window XMODEM
  2924.               protocol  designed  by  Pete  Boswell.    Like all  of  RBBS-PC's
  2925.               protocol drivers, WXMODEM.COM runs as a "one-shot" execution then
  2926.               returns  to RBBS-PC.  WXMODEM does not establish a carrier with a
  2927.               remote system.  The  connection is established by RBBS-PC.   File
  2928.               transfer failures are indicated by an "F" in the fourth parameter
  2929.               of the log file returned to RBBS-PC.
  2930.  
  2931.     Other protocols tested with RBBS-PC include SuperK, Jmodem and Puma.
  2932.  
  2933.  
  2934.  
  2935.     UPLOADED FILE TIPS                                                     21-1
  2936.  
  2937.  
  2938.     21. UPLOADED FILE TIPS
  2939.     ----------------------
  2940.     Every  SysOp should  assume  that any  file  uploaded to  him  that can  be
  2941.     executed  (i.e. .BAS, .COM, .EXE) has the  capability of destroying all the
  2942.     files  available to  the PC it  is executed  on.   This may be  because the
  2943.     documentation   is in  error, the program was  executed incorrectly, or the
  2944.     program was designed to be malicious.  It behooves every SysOp to know what
  2945.     every  uploaded file does in order to  protect not only the RBBS-PC system,
  2946.     but its users.
  2947.  
  2948.  
  2949.  
  2950.     DUE WARNING AND SYSOP'S LEGAL LIABILITY                                22-1
  2951.  
  2952.  
  2953.     22. DUE WARNING AND SYSOP'S LEGAL LIABILITY
  2954.     -------------------------------------------
  2955.     While no definitive case-law or legislation exists defining the liabilities
  2956.     of System Operators, every SysOp should assume that they are as responsible
  2957.     for their own  actions when running an electronic bulletin  board system as
  2958.     they  would be for any other  action as a citizen of  the United States who
  2959.     chooses to exercise  their right to freedom  of speech.  One of  the unique
  2960.     features  of RBBS-PC is that  users have to  OVERTLY register themselves --
  2961.     even when  the RBBS-PC is  "open" to the  general public.   This gives each
  2962.     SysOp the opportunity to give every user "due notice" and require each user
  2963.     to actively acknowledge such notice.  Every SysOp should consider the legal
  2964.     issues, and provide proper notice to all callers.
  2965.  
  2966.  
  2967.  
  2968.     COMPILING AND LINKING RBBS-PC                                          23-1
  2969.  
  2970.  
  2971.     23. COMPILING AND LINKING RBBS-PC
  2972.     ---------------------------------
  2973.     RBBS-PC  source code is distributed along with the executable program RBBS-
  2974.     PC.EXE.   It is NOT  necessary to recompile or re-link  RBBS-PC in order to
  2975.     utilize  RBBS-PC.  This section is intended  for those hardy few who choose
  2976.     to modify the  source and recompile it.  Remember  only what is distributed
  2977.     is supported -- anything else is strictly yours to debug!
  2978.  
  2979.     RBBS-PC's source code  is compilable by the  Microsoft QuickBASIC Compiler,
  2980.     version 2.01 and higher.   However Microsoft's QuickBASIC Compiler  version
  2981.     3.0  is  the compiler  used  to generate  the .EXE  files  distributed with
  2982.     RBBS-PC because  it appears to be the most reliable.  Versions too buggy to
  2983.     use at all include 1.0, 2.0, and 4.0.
  2984.  
  2985.     The batch files MAKERBBS.BAT and MAKECNFG.BAT are included with the source
  2986.     to recompile  RBBS-PC and CONFIG respectively.   They are designed  for use
  2987.     with QuickBasic 3.0 but instructions for other versions of the compiler are
  2988.     in them.   The DTR patch described  in Appendix G should  be applied before
  2989.     you compile RBBS-PC.
  2990.  
  2991.  
  2992.  
  2993.     LIMITED LICENSE                                                        24-1
  2994.  
  2995.  
  2996.     24. LIMITED LICENSE
  2997.     -------------------
  2998.     The RBBS-PC  software is copyrighted but  A LIMITED LICENSE  IS GRANTED and
  2999.     each user is free to use and share it under the following conditions:
  3000.  
  3001.     1. You may NOT distribute RBBS-PC in modified form.
  3002.     2. You may NOT charge a fee for RBBS-PC itself, and
  3003.     3. You MUST retain all references to the copyright and authors.
  3004.  
  3005.     Please  distribute the original version (or update thereof) of the program.
  3006.     If  you have changes please distribute them using the conventions described
  3007.     in section 1.4.  This is necessary so that future   revisions can be easily
  3008.     added to the system without requiring the entire program.
  3009.  
  3010.     Please do NOT resequence  the program.  All revisions will be as files that
  3011.     replace the  base program or update  thereof and the existing  line numbers
  3012.     will be referenced when describing new fixes and enhancements.
  3013.  
  3014.  
  3015.  
  3016.     LIMITED WARRANTY                                                       25-1
  3017.  
  3018.  
  3019.     25. LIMITED WARRANTY
  3020.     --------------------
  3021.     The  RBBS-PC program  is provided  "as is"  without  warranty of  any kind,
  3022.     either   expressed or  implied, including  but not  limited to the  implied
  3023.     warranties  of merchantability and fitness  for a particular  purpose.  The
  3024.     entire risk  as to the quality and  performance of the program  is with the
  3025.     user, and  should the program prove defective, the user and not the authors
  3026.     will assume the entire cost of all necessary remedies.  None of the authors
  3027.     warrant that the  functions contained in the  program will meet  any users'
  3028.     requirements or that  the operation of the program will be uninterrupted or
  3029.     error-free.  In any case, each author's entire liability will be limited to
  3030.     the total amount of money the individual user paid  directly and explicitly
  3031.     to each author for the use of RBBS-PC.
  3032.  
  3033.  
  3034.  
  3035.     THE HISTORY BEHIND RBBS-PC                                             26-1
  3036.  
  3037.  
  3038.     26. THE HISTORY BEHIND RBBS-PC
  3039.     ------------------------------
  3040.     Electronic bulletin  board systems  have been  around  ever since  personal
  3041.     computers  existed.   The  first  ones  were  very  primitive  and  usually
  3042.     consisted  of some posted notices  and maybe allowed  for on-line messages.
  3043.     It  must be remembered that the IBM PC was only announced in August of 1981
  3044.     and first  became  available in  October  of 1981.    Therefore it  is  not
  3045.     surprising  that the  early  history of  BBS'  is associated  with  non-IBM
  3046.     personal computers.
  3047.  
  3048.     The "early history" of bulletin board systems  began around 1978 in Chicago
  3049.     with the CBBS/Chicago (Computerized Bulletin Board System/Chicago).  It was
  3050.     created by  Ward Christensen and Randy Suess -- members of the Chicago Area
  3051.     Computer  Hobbyist Exchange (CACHE).  CBBS for  the CP/M is written in 8080
  3052.     Assembler language (11,000  lines of  it) and, like  the early versions  of
  3053.     RBBS-PC (i.e. prior to 12.5A), detects the baud rate  and the parity of the
  3054.     user when he first  signs on from the three carriage returns  that the user
  3055.     must enter.
  3056.  
  3057.     About the same  time, Bill Abney  wrote a  BBS for the  Radio Shack  TRS-80
  3058.     Models I and II called Forum-80.
  3059.  
  3060.     The earliest BBS was written for the Apple (who else had personal computers
  3061.     in those  days?) called the "Apple  Bulletin Board System" (ABBS).   It was
  3062.     written by Craig Vaughn and Bill Blue.  They later created another bulletin
  3063.     board  system for the Apple II called the People's Message System (PMS).
  3064.  
  3065.     Another Apple  bulletin board system that came into being was for the Apple
  3066.     II, II+,  and  IIE as  well  as the  Franklin  Ace and  it was  called  the
  3067.     CommuniTree.   It  was written  in the  FORTH language  by Dean  Gengle and
  3068.     several others.
  3069.  
  3070.     When IBM  announced its first personal  computer, the IBM PC,  in August of
  3071.     1981, there was no BBS for it.  In the summer of 1982, Brad Hanson found  a
  3072.     prototype version  written by  Russ Lane in  IBM's BASIC  on David  Crane's
  3073.     Dallas RCP/M\CBBS  system.  Brad added many fixes and modifications. In the
  3074.     first  half  of  1983,  many  members  of  the  Capital  PC  Users  Group's
  3075.     Communication  Special  Interest Group  (SIG)  such as  Larry  Jordan, Rich
  3076.     Schinnell, Gary Horwith, Jim Fry, Scot Loftesness, and Dorn Stickle further
  3077.     enhanced it and added XMODEM file transfer capability until it became known
  3078.     as RBBS-PC CPC09 in May of 1983.  At that time each feature or modification
  3079.     was identified by a new version  number; it still ran only under  the BASIC
  3080.     interpreter;  and was both relatively slow (because of the interpreter) and
  3081.     somewhat unstable (it would normally "crash" at least once each day).
  3082.  
  3083.     In  June of  1983, Tom  Mack received  a copy  of  RBBS-PC CPC09  from Rich
  3084.     Schinnell.   Tom's efforts were instrumental  in making RBBS-PC  what it is
  3085.     today -  the industry-standard PC-based  BBS software.   Other contributors
  3086.     have come and gone, but Tom's contribution to RBBS-PC can never be matched.
  3087.  
  3088.     RBBS-PC's impact has been to open an entirely new medium  of communications
  3089.     between people.  Rather than as an  end in and of itself, RBBS-PC has  come
  3090.     to  serve as  a means  to an  end  -- the  free exchange  of ideas.   On  a
  3091.     technical level it  is certainly  an example that  shows "real  programmers
  3092.     can/do  program  in BASIC."    We  would like  to  think  that RBBS-PC  had
  3093.     something  to do with IBM and Microsoft coming out with new versions of the
  3094.     BASIC compiler that support  communications, sub-routines, local and global
  3095.     variables, file-locking in a networking environment, etc.
  3096.  
  3097.  
  3098.  
  3099.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    26-2
  3100.  
  3101.  
  3102.     RBBS-PC represents a fundamental cornerstone, not just a phase, in what can
  3103.     be viewed as a  "social renaissance."    RBBS-PC eliminates those  barriers
  3104.     that had  previously inhibited  the "exchange"  of  information within  our
  3105.     society.    RBBS-PC provides  every personal  computer  owner with  his own
  3106.     "soap-box"  in  a  national   Hyde  Park.    Previously  the   channels  of
  3107.     communication  had  built-in barriers  to  "exchange";  with RBBS-PC  those
  3108.     barriers begin to cease to exist.
  3109.  
  3110.     While only the  most fanatical  RBBS-PC trivia experts  may be  interested,
  3111.     here is the chronology:
  3112.  
  3113.     RBBS-PC   Initial         Major Enhancements
  3114.     Version   Release
  3115.     Number     Date
  3116.  
  3117.     10.0      07/04/83  RBBS-PC first written to be compilable by IBM's BASIC
  3118.                         compiler, version 1.0
  3119.  
  3120.     11.0      08/10/83  RBBS-PC restructured so that all parameters were
  3121.                         external (i.e. in the RBBS-PC.DEF) allowing  SysOps who
  3122.                         didn't want to spend the $300 for the BASIC compiler to
  3123.                         tailor RBBS-PC to their taste.  CONFIG.BAS was first
  3124.                         written to generate RBBS-PC.DEF.
  3125.  
  3126.     11.1      09/15/83  Jon Martin contributed UTSPACE.OBJ, a sub-routine that
  3127.                         allowed the compiled version of RBBS-PC to determine
  3128.                         the amount of free space available for uploading.
  3129.  
  3130.     11.2      10/01/83  The error trapping within RBBS-PC was completely re-
  3131.                         written to be more comprehensive.
  3132.  
  3133.     12.0      10/28/83  Tree-structured file directories and the ability to
  3134.                         detect that RBBS-PC was in a "MultiLink" environment
  3135.                         were incorporated.  "MultiLink" is a product of the
  3136.                         Software Link, Inc. which allows DOS 1.1, 2.0, 2.1, 3.0
  3137.                         and 3.1 to be "multi-tasking."
  3138.  
  3139.     12.1      12/18/83  The ability for a SysOp who signed on remotely to drop
  3140.                         (Versions  into DOS was added.  Also the "New" command
  3141.                         was added "A" to "F")that allowed users to determine
  3142.                         what new files had been made available since the last
  3143.                         time they were on.
  3144.  
  3145.     12.2      04/08/84  The security system designed by Ken Goosens was
  3146.                         incorporated.
  3147.  
  3148.     12.3      11/11/84  Up to nine RBBS-PCs can share the same files in either
  3149.                         a multi-tasking DOS environment (i.e. MultiLink from
  3150.                         the Software Link, Inc.) or in a local area network
  3151.                         environment (i.e. Corvus or Orchid).
  3152.  
  3153.     12.4      03/10/85  (Version A, A1, B) RBBS-PC's stature in the industry
  3154.                         became recognized  when, RBBS-PC was granted a license
  3155.                         by Microcom to incorporate their proprietary MNP
  3156.                         protocol.  "RBBS-PC compatibility" became a minimum
  3157.                         criteria for the introduction of products by many
  3158.                         companies.  RBBS-PC introduces 300/1200/2400 BAUD
  3159.                         support in 12.4A before most such modems were generally
  3160.                         available.
  3161.  
  3162.  
  3163.  
  3164.     THE HISTORY BEHIND RBBS-PC                                             26-3
  3165.  
  3166.  
  3167.     12.5      07/14/85  (Versions A and B).  36  copies of RBBS-PC could share
  3168.                         the same files in a network environment. RBBS-PC
  3169.                         automatically answers the phone and no longer requires
  3170.                         each caller to enter up to 3 carriage returns in order
  3171.                         for RBBS-PC to detect the users baud rate and parity.
  3172.                         Logon to RBBS-PC has been made much more efficient with
  3173.                         the USERS file no longer being searched sequentially
  3174.                         and the MESSAGES file no longer being read three times.
  3175.                         Version 12.5B, released August 25, 1985, WAS THE LAST
  3176.                         VERSION COMPILABLE BY VERSION 1.0 OF THE IBM BASIC
  3177.                         COMPILER!
  3178.  
  3179.     13.1      12/01/85  IBM BASIC compiler and Microsoft's QuickBASIC Version
  3180.                         1.0 supported.  XMODEM with CRC was added as a
  3181.                         file-transfer protocol as well as the ability to
  3182.                         display on the color monitor of the PC running RBBS-PC
  3183.                         the color/graphics that the remote user sees exactly as
  3184.                         he  sees them.
  3185.  
  3186.     14.1      03/16/86  (Versions A, B, C, and D)  RBBS-PC's internal structure
  3187.                         was split into two parts - RBBS-BAS for the main-line
  3188.                         source code and logic, and a RBBS-SUB.BAS for commonly
  3189.                         called subroutines.  Support for on-line
  3190.                         questionnaires, auto-downloading, and the KERMIT
  3191.                         protocol were also included as well as the option to
  3192.                         utilize assembly language subroutines to increase for
  3193.                         better performance over their BASIC counterparts.
  3194.  
  3195.     15.1      03/15/87  File Management System for directories added.  User
  3196.                         subscription management added.  The ability to run as a
  3197.                         local application on a network, configurable command
  3198.                         letters, the ability to use any field or to define a
  3199.                         new field to identify callers, the ability to
  3200.                         individuate callers having the same ID, multiple
  3201.                         uploads on a single command line, new A)nswer and
  3202.                         V)erbose ARC list commands, context sensitive  help,
  3203.                         and a new subsystem  for software "libraries".
  3204.  
  3205.     16.1      03/27/88  (Version A) Major enhancements included the addition of
  3206.                         "sub-boards" (i.e. conferences with their own
  3207.                         bulletins, file areas, menus etc.), a programmable user
  3208.                         interface, the capability to have SysOp-written
  3209.                         "sub-menus" for any command, the ability to hang off of
  3210.                         a public data network such as Compuserve's as a "node",
  3211.                         the incorporation of "personal downloads" (i.e. files
  3212.                         only specific individuals could list/download), the
  3213.                         ability to vary the amount of time a user has on the
  3214.                         system by the time of day the user logs on, the
  3215.                         capability of preventing any message (public or
  3216.                         private) from being read until the SysOp has reviewed
  3217.                         it, an enhanced CONFIG utility with many more options,
  3218.                         XMODEM/1K protocol built-in to RBBS-PC's main-line
  3219.                         source code, the ability to automatically add users to
  3220.                         conferences, and support for The Software Link's
  3221.                         MultiLink  Version 4.0. Despite all these enhancements,
  3222.                         the BASIC RBBS-PC code was significantly enhanced such
  3223.                         that it only requires 268K to run -- allowing two
  3224.                         copies to run in multi-tasking DOS environments that
  3225.                         have 640K available.
  3226.  
  3227.  
  3228.  
  3229.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    26-4
  3230.  
  3231.  
  3232.     17.1      10/02/88  (Versions A, B, C, and D). Major enhancements were made
  3233.                         in the System Support area, and the support for up to
  3234.                         eight communications ports; built-in interfaces to
  3235.                         external communications drivers such as a FOSSIL
  3236.                         driver; automatic notification of the SysOp when
  3237.                         specific users log on; improved automatic invocation of
  3238.                         other applications based on time of day; and
  3239.                         SysOp-selectable time delays that users must wait
  3240.                         before being able to download or exit to a door.
  3241.                         RBBS-PC's unique programmable user interface (PUI) was
  3242.                         enhanced to support "macros" (i.e. use a single command
  3243.                         to invoke any number of RBBS-PC commands);
  3244.                         SysOp-selectable colors for all prompts and messages
  3245.                         (i.e. "colorization"); caller-selectable "colorization"
  3246.                         for text (i.e. color, bold or normal, highlighting of
  3247.                         text, etc.);  and personalized text files (i.e. text
  3248.                         files that can dynamically adapt to include information
  3249.                         unique to each caller).  The messaging within RBBS-PC
  3250.                         was enhanced to notify each caller that logs on of the
  3251.                         number of new messages and how many are addressed to
  3252.                         the caller for the conferences to which the caller
  3253.                         belongs.  The text editor function for messages was
  3254.                         enhanced to allow any character to be edited.  RBBS-
  3255.                         PC's standard "threaded" message search now also scans
  3256.                         the text of the messages for matches.  The RBBS-PC file
  3257.                         subsystem was also significantly enhanced to include an
  3258.                         unlimited number of installable protocols; batch
  3259.                         downloading for such protocols that support this (i.e.
  3260.                         Zmodem, Megalink, and Sealink); and control of callers
  3261.                         ability to download based on either the number of
  3262.                         characters or the ratio of the callers downloads to
  3263.                         uploads.
  3264.  
  3265.     17.2      05/28/89  (Versions A-B).  Major enhancements consisted of
  3266.                         increased flexibility in invoking external applications
  3267.                         (i.e. "DOORS"), on-line questionnaires, RBBS-PC command
  3268.                         "macros", the integration (using the enhanced
  3269.                         questionnaires and "macros") of on-line data base
  3270.                         facilities into RBBS-PC, as well as extended support in
  3271.                         RBBS-PC's file system to support ANY file compaction
  3272.                         technique (i.e. .ARC, .ZOO, .ZIP, etc.) -- including
  3273.                         allowing on-line users to list text files that have
  3274.                         been included within a compacted file.  RBBS-PC's
  3275.                         "NETMAIL" interface to store and forward messaging
  3276.                         systems (i.e. FIDO MAIL, etc.) was enhanced.  Within
  3277.                         the messaging subsystem numerous enhancements were
  3278.                         added including the ability to quote all or part of a
  3279.                         message that the caller was replying to.  RBBS- PC's
  3280.                         file subsystem was improved to allow the system to be
  3281.                         configured such that all uploads were automatically
  3282.                         checked/verified (by whatever utility the SysOp wanted
  3283.                         to use).  RBBS-PC commitment to the concept of "users
  3284.                         helping users" was demonstrated once again with the
  3285.                         incorporation of support for the Computalker and
  3286.                         HEARSAY 1000 speech boards so that seeing-impaired
  3287.                         SysOps could hear (in a meaningful way) the activity
  3288.                         occurring on their RBBS-PC bulletin boards.
  3289.  
  3290.  
  3291.  
  3292.     THE HISTORY BEHIND RBBS-PC                                             26-5
  3293.  
  3294.  
  3295.     17.3      02/11/90  (versions 17.3  & 17.3A) Fast File  Search:  sub-second
  3296.                         file name looks for  over 32,000 downloadable files; up
  3297.                         to  10,098 downloadable  areas.   Variable  names  were
  3298.                         changed to  MicroSoft standard  format using  upper and
  3299.                         lower case letters only, and no internal dots.  Some 50
  3300.                         bugs  were  fixed.   News  facility  added.   Universal
  3301.                         command stacking.   Default extension on file requests.
  3302.                         Enhanced macros  and  SmartText.   Defaults  added  for
  3303.                         multiple  modems.     Support for  38,400 baud  through
  3304.                         Fossil driver.
  3305.  
  3306.  
  3307.  
  3308.     PROPOSED RBBS-PC SYSOP CONFERENCE                                      27-1
  3309.  
  3310.  
  3311.     27. PROPOSED RBBS-PC SYSOP CONFERENCE
  3312.     -------------------------------------
  3313.     As the modem community continues to evolve, RBBS-PC must change to meet the
  3314.     needs of all users.   For years, RBBS-PC has survived with  file structures
  3315.     that  are "adequate."    However, each  passing year  brings  new uses  for
  3316.     RBBS-PC that place demands on the internal structure of the system.
  3317.  
  3318.     It is  time  to discuss  the  future of  RBBS-PC.   We  would like  to  see
  3319.     RBBS-PC's future written in the same  spirit that RBBS-PC is developed,  by
  3320.     involving the users.  If possible, a SysOp conference can coincide with the
  3321.     internal  restructuring  of  RBBS-PC.   Topics  can  be  discussed such  as
  3322.     RBBS-PC's support  of netmail, enhanced messaging features, and an enhanced
  3323.     USER  record  structure.    This conference  cannot  succeed  without  your
  3324.     support.  The timing, location, and agenda for such a meeting is left up to
  3325.     the RBBS-PC community, but may we suggest a winter retreat in Florida?  Who
  3326.     wouldn't mind spending a few days in the sun,  and discussing the future of
  3327.     RBBS-PC at the same time?
  3328.  
  3329.     If you are interested in participating, write me at the following address:
  3330.  
  3331.          Doug Azzarito
  3332.          RBBS-PC SysOp Conference
  3333.          5480 Eagle Lake Drive
  3334.          Palm Beach Gardens, FL  33418
  3335.  
  3336.     Or call my BBS: (407) 627-6969 or 627-6862.
  3337.  
  3338.     I would especially like to hear from anyone with experience in organizing a
  3339.     conference.  If  you have gone  through the process  of booking hotels  and
  3340.     meeting space,  or other things  I probably won't  think of, PLEASE  let me
  3341.     know!
  3342.  
  3343.  
  3344.  
  3345.     RBBS-PC, THE LARGEST SOFTWARE HOUSE IN THE WORLD                       28-1
  3346.  
  3347.  
  3348.     28. RBBS-PC, THE LARGEST SOFTWARE HOUSE IN THE WORLD
  3349.     ----------------------------------------------------
  3350.     RBBS-PC'S  "Userware" concept is founded on the principle stated in section
  3351.     1.1 -- "software which  is shared becomes better than it was."   Relying on
  3352.     Federal  copyright protection, we believe that RBBS-PC's source code can be
  3353.     distributed  without  the risk  of "loss  of  ownership" (i.e.  it becoming
  3354.     "public  domain").  We believe all software (commercial and non-commercial)
  3355.     should  be distributed  as both  compiled/executable files  and  with their
  3356.     source code.   With few  exceptions, RBBS-PC's copyrights  have never  been
  3357.     violated  -- this  is due  more to  the fact  that RBBS-PC  enthusiasts are
  3358.     ever-vigilant  of RBBS-PC's  copyrights  rather than  due  to any  lack  of
  3359.     attempts  to "sell"  RBBS-PC  or RBBS-PC  look-alikes  to the  unsuspecting
  3360.     public.
  3361.  
  3362.     Incorporating  these  new  features and  ideas  into  each  new release  of
  3363.     RBBS-PC,  making sure  that upward  compatibility  with earlier  version of
  3364.     RBBS-PC  exists, as well as maintaining RBBS-PC's copyright, are all things
  3365.     that the  authors accept the responsibility for.   However, it is RBBS-PC's
  3366.     "support  staff" (i.e.  all  those  who  enhance  RBBS-PC  and  share  such
  3367.     enhancements)  that continues  to make  RBBS-PC a  unique experiment  in PC
  3368.     software.
  3369.  
  3370.     No one should feel that the possibilities for RBBS-PC have even begun to be
  3371.     exhausted.  In fact, we are absolutely certain that even as this is written
  3372.     innovative enhancements are being created for RBBS-PC.  It is our sincerest
  3373.     hope that if  RBBS-PC continues to  succeed within the  IBM PC industry  in
  3374.     becoming  the  "bulletin-board  standard,"  software   vendors  will  begin
  3375.     examining the reasons for RBBS-PC's success and come to understand that:
  3376.  
  3377.        - The best form of software support is user support
  3378.        - The best source for software enhancements are from it's users
  3379.        - The best software continually adopts itself to users needs
  3380.        - The  best way to minimize software development is to distribute source
  3381.          code.
  3382.  
  3383.     Each RBBS-PC system  operator has  the opportunity to  affect what  RBBS-PC
  3384.     becomes in the future.  Many already  have.  RBBS-PC continues to grow  and
  3385.     expand  because hundreds (and quite possibly thousands) of SysOps spend the
  3386.     time and trouble not  only to modify RBBS-PC to meet  their needs, but also
  3387.     to share  these modifications  with others.   We do  not know of  any other
  3388.     software  for  the IBM  PC  that  has such  a  vast  number of  programmers
  3389.     supporting  it.   In  section  1.3,  we  name  many  such  individuals  and
  3390.     acknowledge that there are  a lot more!  With the structured  code that the
  3391.     new BASIC compilers allow,  even more RBBS-PC system operators  are invited
  3392.     to contribute.  Take the time!  Make the difference!
  3393.  
  3394.  
  3395.  
  3396.     APPENDIX A -- RBBS-PC Record Formats                                    A-1
  3397.  
  3398.  
  3399.                                      APPENDICES
  3400.     APPENDIX A -- RBBS-PC Record Formats
  3401.     ------------------------------------
  3402.     This  appendix is intended  to document the  record formats of  some of the
  3403.     more significant records used within RBBS-PC.  As such, it is intended more
  3404.     as  a "programmers' guide"  for those who  wish to  write RBBS-PC utilities
  3405.     rather than as "user documentation."  No record format is  "sacrosanct" and
  3406.     any of them may  be changed in future  releases.  However such  changes are
  3407.     not  made capriciously  and, when  they are  made, are accompanied  by some
  3408.     utility program  that will allow the  old files to be  reformatted into the
  3409.     new format.
  3410.  
  3411.     The MESSAGES file contains the messages that have been left on RBBS-PC.  It
  3412.     is  a random access  file with 128-byte  records.  The  first record of the
  3413.     MESSAGES  file  acts  as  RBBS-PC's  "checkpoint"  record.     The  records
  3414.     immediately following  this first  record are the  RBBS-PC "node"  records.
  3415.     Each  "node"  record  represents  the activity/options  associated  with  a
  3416.     particular copy of RBBS-PC ("node").   There can be up to thirty-six copies
  3417.     of  RBBS-PC running simultaneously, therefore there can be up to thirty-six
  3418.     "node" records following the "checkpoint" record.
  3419.  
  3420.     The MESSAGES file has the following logical format:
  3421.  
  3422.                +----------------------------------------------+
  3423.     Record #1  |  RBBS-PC "checkpoint" record                 |
  3424.                +----------------------------------------------+
  3425.     Record #2  |  RBBS-PC "node" record for node # 1          |
  3426.                |                                              |
  3427.                |            up to                             |
  3428.                |                                              |
  3429.                |  RBBS-PC "node" record for node # 9          |
  3430.                |  RBBS-PC "node" record for node # 0          |
  3431.                |  RBBS-PC "node" record for node "A"          |
  3432.                |                                              |
  3433.                |            up to                             |
  3434.                |  RBBS-PC "node" record for node "Z"          |
  3435.                |                                              |
  3436.                +----------------------------------------------+
  3437.                |  First Record in Message portion of file     |
  3438.                +----------------------------------------------+
  3439.                |                                              |
  3440.                \  Message records that have been used         \
  3441.                \                                              \
  3442.                |                                              |
  3443.                +----------------------------------------------+
  3444.                |  Record available for next message           |
  3445.                +----------------------------------------------+
  3446.                |  Last record available in MESSAGES file      |
  3447.                +----------------------------------------------+
  3448.  
  3449.     The FIRST RECORD  of the "MESSAGES" file acts as  a "checkpoint" record for
  3450.     all the  multiple RBBS-PC's  that may  be  sharing the  MESSAGES and  USERS
  3451.     files.  It contains information  critical  to  maintaining the integrity of
  3452.     these two files.  The layout of RBBS-PC  Message  File  Record Number 1  is
  3453.     as follows:
  3454.  
  3455.     Position Length           Description
  3456.  
  3457.       1 -  8     8   Number assigned to the last message entered
  3458.  
  3459.  
  3460.  
  3461.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     A-2
  3462.  
  3463.  
  3464.       9 - 10     2   Security level required to be auto-added to a conference
  3465.      11 - 20    10   Current caller number
  3466.      21 - 56    36   --- RESERVED FOR FUTURE USE ----
  3467.      57 - 61     5   Count of the number of USER records used
  3468.      62 - 67     6   --- RESERVED FOR FUTURE USE ----
  3469.      68 - 74     7   Record Number where "messages" portion of the
  3470.                            MESSAGES file begins
  3471.      75 - 81     7   Record Number of the next available record in the
  3472.                            MESSAGES file where the next message may be written
  3473.      82 - 88     7   Record Number of the last record in the MESSAGES file
  3474.      89 - 95     7   Maximum number of messages allowed in the MESSAGES file
  3475.      96 -126    31   --- RESERVED FOR FUTURE USE ----
  3476.     127 -128     2   Maximum number of RBBS-PC's sharing this MESSAGES file
  3477.  
  3478.     As a programming reference, line numbers 1900 and 23000 of the BASIC source
  3479.     code  for  RBBS-PC.BAS contains  the  code  for  reading this  "checkpoint"
  3480.     record.
  3481.  
  3482.     Following  the first record of the MESSAGES file  are from one to 36 "node"
  3483.     records.   Each "node"  record  contains information   critical    to   the
  3484.     running of that copy of RBBS-PC associated with that "node".  The layout of
  3485.     each RBBS-PC  "node" record is as follows:
  3486.  
  3487.     Position Length          Description
  3488.  
  3489.       1 - 31    31  Name of last person on this copy of RBBS-PC
  3490.      32 - 33     2  SysOp available indicator (true or false)
  3491.      34 - 35     2  SysOp annoy indicator (true or false)
  3492.      36 - 37     2  SysOp is to be on next indicator (true or false)
  3493.      38 - 39     2  Line printer available indicator (true or false)
  3494.      40 - 41     2  Door's availability indicator (true or false)
  3495.      42 - 43     2  Eight bit transmission indicator (true or false)
  3496.      44 - 45     2  Caller's baud rate indicator: -1 =   300 bps
  3497.                                                   -2 =   450 bps
  3498.                                                   -3 =  1200 bps
  3499.                                                   -4 =  2400 bps
  3500.                                                   -5 =  4800 bps
  3501.                                                   -6 =  9600 bps
  3502.                                                   -7 = 19200 bps
  3503.                                                   -8 = 38400 bps
  3504.      46 - 47     2  Upper case only indicator (true or false)
  3505.      48 - 51     4  Number of bytes transferred (from external protocols)
  3506.        52        1  Batch transfer indicator (not zero = batch)
  3507.      53 - 54     2  Graphics indicator (0 = text, 1 = full ASCII, 2 = color)
  3508.      55 - 56     2  SysOp indicator (-1 = SysOp)
  3509.         57       1  Activity indicator (I=inactive, A=active)
  3510.      58 - 59     2  SNOOP on indicator (true or false)
  3511.      60 - 64     5  Baud that RBBS-PC talks to the modem at (single precision)
  3512.      65 - 67     3  Time user logged onto the system (HH:MM:SS)
  3513.      68 - 71     4  --- RESERVED FOR FUTURE USE ---
  3514.      72 - 73     2  Private door indicator (true or false)
  3515.        74        1  Type of transfer to external program:
  3516.                                  0 = none
  3517.                                  1 = download a file
  3518.                                  2 = upload a file
  3519.                                  3 = external registration program
  3520.        75        1  First letter of file transfer protocol
  3521.        76        1  --- RESERVED FOR FUTURE USE ----
  3522.      77 - 78     2  Last date, MM-DD-YY, that RBBS-PC exited to DOS (packed)
  3523.  
  3524.  
  3525.  
  3526.     APPENDIX A -- RBBS-PC Record Formats                                    A-3
  3527.  
  3528.  
  3529.      79 - 85     7  --- RESERVED FOR FUTURE USE ----
  3530.      86 - 90     5  Last time, HH:MM, that RBBS-PC exited to DOS
  3531.      91 - 92     2  Reliable mode indicator (true or false)
  3532.      93 - 116   24  Work area that normally contains caller's City and State,
  3533.                     but when temporarily exiting RBBS-PC used as:
  3534.                     Position Length          Description
  3535.                      93 -100     8  Programmable user interface file name
  3536.                     101 -102     2  Local user indicator (2 hex 0Ds if local)
  3537.                     103 -104     2  Local user mode (true if using COM0)
  3538.                     105 -112     8  Name of current "conference" or "sub-board"
  3539.                     113 -114     2  Time credits (minutes)
  3540.                     115 -116     2  --- UNUSED ----
  3541.     117 -118     2  Subsystem index of last subsystem user was in.
  3542.     119 -124     6  Month, day, and year, MMDDYY, exited to external protocol
  3543.     125 -128     4  Hour and minute, HHMM, exited to external protocol
  3544.  
  3545.     As  a  programming reference  and  in order  to  see how  these  fields are
  3546.     set/used in the  node records, review  the following line numbers  in RBBS-
  3547.     PC.BAS  -- 150,  200, 400, 420,  842, and  13555.  In  addition, review the
  3548.     following subroutines as well:
  3549.  
  3550.                   Source Code     Subroutine
  3551.                  RBBSSUB2.BAS ---- WhosOn
  3552.                  RBBSSUB3.BAS ---- FindFKey
  3553.                                    SaveProf
  3554.                                    ReadProf
  3555.                  RBBSSUB4.BAS ---- TimedOut
  3556.  
  3557.     A message within the messages file consists of a MESSAGE HEADER followed by
  3558.     the text of the message.   The RBBS-PC Message File "message header" record
  3559.     layout is as follows:
  3560.  
  3561.     Position Length        Description
  3562.  
  3563.         1        1  Contains an "*" for read-only messages, blank otherwise
  3564.       2 -  5     4  Message number of this message
  3565.       6 - 36    31  The name of the person the message is from
  3566.      37 - 58    22  The name of the person to whom the message is sent
  3567.      59 - 66     8  Time of day that the message was sent (HH:MM:SS)
  3568.      67 - 67     1  ---- RESERVED FOR FUTURE USE ----
  3569.      68 - 75     8  Date the message was sent (MM-DD-YY)
  3570.      76 -100    25  Subject of the message
  3571.     101 -115    15  Password for the message (if any)
  3572.     116 -116     1  "Active" message indicator = ASCII 225
  3573.                     "Killed" message indicator = ASCII 226
  3574.     117 -120     4  Number of 128-byte records for this message --
  3575.                         including the "message header" record.
  3576.     121 -122     2 Minimum security level to read message
  3577.     123 -125     3 Date (packed) the message was last read (MM/DD/YY)
  3578.     126 -128     3 Time (packed) the message was last read (HH:MM:SS)
  3579.  
  3580.     As a  programming reference, review lines 3405, 3460, 3530, and 8076 of the
  3581.     BASIC source code  for RBBS-PC.BAS to see how  these fields are set.   Each
  3582.     record following  the MESSAGE HEADER  record is  a MESSAGE TEXT  record and
  3583.     consists of 128 characters.   Each of these 128-byte message  text" records
  3584.     contains the message text.  The end of each line in the message is followed
  3585.     by an RBBS-PC "end-of-line" indicator which is equal to an ASCII 227.  This
  3586.     allows  RBBS-PC to  "pack"  multiple message  lines  in a  single  128-byte
  3587.     record.
  3588.  
  3589.  
  3590.  
  3591.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     A-4
  3592.  
  3593.  
  3594.     Information  unique to each  person who logs  on is contained  in the USERS
  3595.     file (a random file of 128-byte records).  Each records is as follows:
  3596.  
  3597.     Position Length           Description
  3598.       1 - 31    31  Users first and last name (separated by a blank).
  3599.      32 - 46    15  Users password for logon.
  3600.      47 - 48     2  Users security level (permanent).
  3601.      49 - 62    14  Users logon options (see detail breakdown below).
  3602.      63 - 86    24  City and state from which the user is calling.
  3603.      87 - 89     3  ---- RESERVED FOR FUTURE USE ----
  3604.      90 - 93     4  Number of files downloaded today
  3605.      94 - 97     4  Number of bytes downloaded today
  3606.      98 -101     4  Number of bytes downloaded (ever).
  3607.     102 -105     4  Number of bytes uploaded (ever).
  3608.     106 -119    14  Date and time the user was last on (MM-DD-YY HH:MM).
  3609.     120 -122     3  Date the user last listed a directory.
  3610.     123 -124     2  Number of files downloaded (ever).
  3611.     125 -126     2  Number of files uploaded (ever).
  3612.     127 -128     2  Elapsed time the user was on for day of last access.
  3613.  
  3614.     Line 9400 of the BASIC  source code for  RBBS- PC.BAS contains the code for
  3615.     opening this  file.  The user's logon options, positions 49 through 62, are
  3616.     utilized as follows:
  3617.  
  3618.     Position Length           Description
  3619.      49 - 50     2   Number of times the user has logged on
  3620.      51 - 52     2   Last message number read by the user
  3621.         53       1   Protocol Preference (blank if none, otherwise letter)
  3622.         54       1   Graphics Preference (see meaning below)
  3623.      55 - 56     2   Margin length for this users messages
  3624.      57 - 58      2   Bit Flag -- this  16-bit field is denoted by bit 0  being
  3625.     the  least significant  (i.e. right-most  bit) and  bit 15  being the  most
  3626.     significant (i.e. left-most  bit).   These "bit flags"  have the  following
  3627.     meanings (0=off, 1=on):
  3628.  
  3629.                    BIT  Definition (what ON means)
  3630.                     0   Bell prompts
  3631.                     1   "Expert" mode
  3632.                     2   Nulls
  3633.                     3   Upper case only
  3634.                     4   Line feeds
  3635.                     5   Skip old bulletins
  3636.                     6   Check new files on logon
  3637.                     7   Use autodownload
  3638.                     8   Required questionnaire answered
  3639.                     9   Mail Waiting
  3640.                    10   Highlighting enabled
  3641.                    11   "TurboKey" enabled
  3642.                  12-15  RESERVED FOR FUTURE USE
  3643.  
  3644.      59 - 60     2   Date subscription began
  3645.         61       1   Page length to use for this users terminal
  3646.         62       1  ------- RESERVED FOR FUTURE USE ---------
  3647.                 ---
  3648.                 14
  3649.  
  3650.     The meaning of the graphics preference byte depends on the numeric value it
  3651.     has.   The caller can specify, for text files, no graphics, ascii graphics,
  3652.     or ansi color graphics;  then  the color, and then whether normal or  bold.
  3653.  
  3654.  
  3655.  
  3656.     APPENDIX A -- RBBS-PC Record Formats                                    A-5
  3657.  
  3658.  
  3659.     For example, if graphics preference for text files is color, and preference
  3660.     for normal text is light yellow, graphics preference stored is  38.  Colors
  3661.     are Red, Green, Yellow, Blue, Purple, Cyan, and White.
  3662.  
  3663.                              normal                  bold
  3664.        graphics\color  R  G  Y  B  P  C  W    R  G  Y  B  P  C  W
  3665.         none ......   30 33 36 39 42 45 48 | 51 54 57 60 63 66 69
  3666.        ascii ......   31 34 37 40 43 46 49 | 52 55 58 61 64 67 70
  3667.         ansi ......   32 35 38 41 44 47 50 | 53 56 59 62 65 68 71
  3668.  
  3669.  
  3670.  
  3671.     APPENDIX B -- RBBS-PC Software Registration                             B-1
  3672.  
  3673.  
  3674.     APPENDIX B -- RBBS-PC Software Registration
  3675.     -------------------------------------------
  3676.     Frequent  inquires  are  made  asking  how  many  RBBS-PC  systems  are  in
  3677.     operation, or  about a "master" list of RBBS-PC's.  Since RBBS-PC is freely
  3678.     distributed, attempts  to get SysOps to  register the product have  been in
  3679.     vain.   However,  in an  attempt  to  help SysOps  (and  potential  SysOps)
  3680.     everywhere  find configurations that most  closely match their  own, and to
  3681.     help users find more RBBS-PC systems, we ask that you register your copy of
  3682.     RBBS-PC.  The information you supply will be used to maintain an "ACCURATE"
  3683.     listing of  all publicly available  RBBS-PC systems.   The success  of this
  3684.     endeavor depends on  you.  Please  complete the  BBS info file  LG-9999.DEF
  3685.     supplied with this release of RBBS-PC and send it to:
  3686.  
  3687.            RBBS-PC SOFTWARE REGISTRATION
  3688.            P.O. Box 31024
  3689.            Palm Beach Gardens, FL 33420-1024  U.S.A.
  3690.  
  3691.     To make sure  your registration is current, please remember  to send a copy
  3692.     of  your registration form at least once each  year.  You can also call The
  3693.     RBBS-PC  technical support BBS and upload  a copy of the form.    An online
  3694.     database of all respondents will be available on the technical support BBS:
  3695.     (407) 627-6969 or 627-6862.
  3696.  
  3697.     If you need a good reason to complete and return  the information, read on!
  3698.     As  RBBS-PC continues  to evolve, we  must make decisions  that will affect
  3699.     you.  If  we know who you  are, and what your  environment is like, we  are
  3700.     less likely to introduce a new version of RBBS-PC that will not run in your
  3701.     environment!
  3702.  
  3703.     THE BBS IDENTIFICATION STANDARD
  3704.     -------------------------------
  3705.     To  help BBS list editors, and other users  searching for your BBS, we have
  3706.     started what we  hope will be an industry standard.  Please implement it on
  3707.     your BBS.  Here's how:
  3708.  
  3709.       1) Complete the LG-9999.DEF  file and  place it with  your other  LGn.DEF
  3710.          files.
  3711.       2) Create  a user  with first  name "BBS",  Last name  "VERIFY", password
  3712.          "CALL".
  3713.       3) Set this user's SECURITY to -9999.
  3714.  
  3715.     Now, any time a BBS list editor calls for a quick check, he'll use the name
  3716.     BBS VERIFY  and a  password of  CALL.  Your  BBS will  quickly display  the
  3717.     information he needs, and then hang up.  Any user who is curious about your
  3718.     BBS can do the same.  If  ALL BBS systems implement this, keeping track  of
  3719.     the fast moving BBS community will be much easier.  Please, do what you can
  3720.     to convince other SysOps to implement this simple procedure.
  3721.  
  3722.  
  3723.  
  3724.     APPENDIX C -- RBBS-PC Subscription Service                              C-1
  3725.  
  3726.  
  3727.     APPENDIX C -- RBBS-PC Subscription Service
  3728.     ------------------------------------------
  3729.     It  seems that  many people  absolutely  must be  on the  bleeding edge  of
  3730.     RBBS-PC and  demand  each new  version  as soon  as  possible after  it  is
  3731.     released.  For them  you can order in advance the  next release of RBBS-PC.
  3732.     It will  be mailed anywhere by air  mail - overnight in  the United States,
  3733.     ordinary air  mail elsewhere.  The charge  for this subscription upgrade is
  3734.     $25.
  3735.  
  3736.     Hopefully,  this service  will only  be used  by a  very, VERY  few!   Most
  3737.     releases have a few fixes that get  published within the first week or  two
  3738.     that  they are out.  Because of this  everyone is advised to check back for
  3739.     fixes after each  release goes out.
  3740.  
  3741.     To  obtain this  service for  the NEXT  release (it  does NOT apply  to the
  3742.     current or previous releases) fill out the following form and send it along
  3743.     with your  check or  money  order in  U.S. funds  (no  purchase orders  are
  3744.     accepted and your canceled check is your only invoice).
  3745.         +------------------------------------------------------------------+
  3746.         | To: Capital PC Software Exchange  RBBS-PC Subscription Service to|
  3747.         |     P.O. Box 6128                 the NEXT release of RBBS-PC (if|
  3748.         |     Silver Spring, Maryland       any - and none are implied or  |
  3749.         |                    20906          promised by this offer)        |
  3750.         |------------------------------------------------------------------|
  3751.         |Date Requested:                   Date Received:                  |
  3752.         |------------------------------------------------------------------|
  3753.         |To (Recipient's Name):                                            |
  3754.         |------------------------------------------------------------------|
  3755.         |Recipient's Phone Number (required): (      )        -            |
  3756.         |------------------------------------------------------------------|
  3757.         |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)      |
  3758.         |                                                                  |
  3759.         |                                                                  |
  3760.         |------------------------------------------------------------------|
  3761.         | City                            | State or Country               |
  3762.         |                                 |                                |
  3763.         |------------------------------------------------------------------|
  3764.         | Signature (required)            | ZIP Code for Street Address    |
  3765.         |                                 |                                |
  3766.         +------------------------------------------------------------------+
  3767.           Note: this is not a promise that there will be any new releases.
  3768.  
  3769.  
  3770.  
  3771.     APPENDIX D -- Modems with RBBS-PC                                       D-1
  3772.  
  3773.  
  3774.     APPENDIX D -- Modems with RBBS-PC
  3775.     ---------------------------------
  3776.  
  3777.     Introduction
  3778.     ------------
  3779.  
  3780.     Modems are  often frustrating things  to get  working properly on  a BBS.
  3781.     Some have hardware switches  that must be set.   When a SysOp  finally gets
  3782.     his own  modem to work with  RBBS-PC, he will often  share his discoveries.
  3783.     This appendix is a result of such sharing.
  3784.  
  3785.     Anchor Signalman Express (MK12)
  3786.     -------------------------------
  3787.     The following are the switch and jumper settings for the Modem.
  3788.  
  3789.         Switch 1 = Off
  3790.         Switch 2 = Off
  3791.         Switch 3 = On
  3792.         Switch 4 = On
  3793.         Switch 5 = On
  3794.         Switch 6 = On
  3795.         Switch 7 = On
  3796.         Switch 8 = On
  3797.  
  3798.     Ark-Paradyne
  3799.     ------------
  3800.     The ARK Modem is somewhat Hayes  compatible, therefore some changes must be
  3801.     made to  use this modem.   Because  of major improvements  in RBBS-PC,  the
  3802.     modem can now be  used in both of its  modes, Normal and Hayes. To  use the
  3803.     HAYES (tm) mode follow this procedure:
  3804.  
  3805.     A.) Using CONFIG.EXE supplied with RBBS-PC, select and change the following
  3806.        parameters:
  3807.  
  3808.     Parameter 224  Number of rings to wait before answering -------- 1
  3809.                    Do you want ringback? (YES/NO) ----------------- NO
  3810.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  3811.                    1. Reset the modem ------ : ATZ or ATV0Z
  3812.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  3813.                         (Note the use of "Q0" to initialize the modem)
  3814.                    3,4,5  Use the defaults supplied
  3815.     Parameter 227  Issue modem commands between rings ------------ YES
  3816.     Parameter 228  Baud rate to initially open modem at --------- 2400
  3817.     Parameter 237  Leave modem at initial baud rate --------------- NO
  3818.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  3819.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  3820.  
  3821.     For the ARK 24K (not 24K PLUS) use the following switch & jumper settings:
  3822.  
  3823.             Switch 1 UUUDDUUD    (where U = Up = On and  D = Down = Off)
  3824.             Switch 2 UDDDDUDD
  3825.             Switch 3 DUUDUUUU
  3826.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  3827.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  3828.  
  3829.     For the ARK 24K PLUS use the following:
  3830.  
  3831.             Switch 1 UUUDDUUD    last down = Hayes mode
  3832.             Switch 2 UDDDDUDD    first up = auto answer off
  3833.  
  3834.  
  3835.  
  3836.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     D-2
  3837.  
  3838.  
  3839.             Switch 3 DUUDUDDD    last three down = "auto baud"
  3840.             Modem Jumpers - Use the factory defaults on all
  3841.  
  3842.     B.) You can  also use the ARK  NORMAL mode with a fixed  terminal rate. The
  3843.     modem  talks to RBBS-PC at 2400 and talks  to your user at 300, 1200, 2400.
  3844.     One problem noted was that upon return from dropping to DOS,  the baud rate
  3845.     reverted back to  2400. If you  were remote  and using a  1200 baud  modem,
  3846.     things get very messy.  It has been noted with some external protocols that
  3847.     a similar  problem exists.  I  don't recommend this setting  unless you are
  3848.     willing  to take  some risks.   You must also  use flow control.   Make the
  3849.     settings as follows:
  3850.  
  3851.     Parameter 224  Number of rings to wait before answering -------- 1
  3852.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  3853.                    1. Reset the modem ------ : ATV0Z
  3854.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  3855.                    3,4,5  Use the defaults supplied
  3856.     Parameter 227  Issue commands between rings ------------------ YES
  3857.     Parameter 228  Baud rate to initially open modem at --------- 2400
  3858.     Parameter 237  Leave modem at initial baud rate -------------- YES
  3859.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) --- YES
  3860.     Parameter 245  Modem flow control uses XON/XOFF -------------- YES
  3861.  
  3862.     The following is recommended for the ARK 24K Modem:
  3863.  
  3864.             Switch 1 UUUDDUUU     (NOTE 8th position)  +++
  3865.             Switch 2 UDDDDUDD
  3866.             Switch 3 DUUDUUUU
  3867.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  3868.             JUMPERS         E9-E10        E15-E16      E4-E7     E11-E14
  3869.  
  3870.     The following is recommended for the ARK 24K Plus Modem:
  3871.  
  3872.             Switch 1 UUUDDUUU
  3873.             Switch 2 UDDDDUDD
  3874.             Switch 3 DUUDUUUU
  3875.  
  3876.     C.) You can also  use the Hayes mode with  rings set to zero but  you can't
  3877.     use Doors or SysOp drop to DOS.  (This mode has proven to be very reliable)
  3878.  
  3879.     Parameter 224  Number of rings to wait before answering -------- 0
  3880.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  3881.                    1. Reset the modem ------ : ATZ
  3882.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=1
  3883.                    3,4,5  Use the defaults supplied
  3884.     Parameter 227  Issue commands between rings ------------------ YES
  3885.     Parameter 228  Baud rate to initially open modem at --------- 2400
  3886.     Parameter 237  Leave modem at initial baud rate --------------  NO
  3887.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  3888.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  3889.  
  3890.     The following is recommended for the ARK 24K Modem:
  3891.  
  3892.             Switch 1 UUUDDUUD   (note 8th position)
  3893.             Switch 2 DDDDDUDD   (note 1st position)
  3894.             Switch 3 DUUDUUUU
  3895.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  3896.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  3897.  
  3898.  
  3899.  
  3900.     APPENDIX D -- Modems with RBBS-PC                                       D-3
  3901.  
  3902.  
  3903.     The following is recommended for the ARK 24K Plus Modem:
  3904.  
  3905.             Switch 1 UUUDDUUD
  3906.             Switch 2 UDDDDUDD
  3907.             Switch 3 DUUDUDDD
  3908.  
  3909.     Technical comments on the Ark Modems for your interest.
  3910.       1) Ark Modems can't accept  any commands if the "AA"  (auto answer) light
  3911.          is on and the  phone is ringing until the  number of rings equals  the
  3912.          number set  in the S0  register.   RBBS-PC expects to  issue a  "modem
  3913.          answer command" when it detects a ring and is ready.  If the Ark modem
  3914.          can't  accept this command, it won't  answer the phone.  You therefore
  3915.          cannot use the ring-back system or answer on a ring greater than 1.
  3916.  
  3917.       2) Another interesting difference is that when the modem is in the "quiet
  3918.          mode" (Q1) NO results will be sent to the computer.  If we  inquire as
  3919.          to the number of rings received, it responds with absolutely nothing.
  3920.  
  3921.       3) In the Ark  Normal mode, if  you enter a  reset command  ATZ or Z,  it
  3922.          requests a confirmation of  "Confirm  (Y/N) >" and you must enter a  Y
  3923.          or else it does nothing.  We can  get around this with a  ATV0Z  which
  3924.          tricks this into an un-conditional reset.
  3925.  
  3926.       4) If you attempt  to operate in the ARK NORMAL mode at 2400 baud and set
  3927.          the DTE/CLOCK  jumper to E8-E9, the  modem will "downshift"  to a baud
  3928.          rate to match the caller, which is normal.  Assuming  you downshift to
  3929.          300 baud you must reset it with a ATZ at 300 Baud.   RBBS-PC resets it
  3930.          at the  initial rate of 2400  baud and therefore the  modem is "hung".
  3931.          Obviously this is not recommended.
  3932.  
  3933.     The following modems were tested:  24K  - ROM versions 2.21, 2.23, 2.31 24K
  3934.     PLUS - ROM ver 3.63.
  3935.  
  3936.     If you have questions on this modem contact:
  3937.  
  3938.         Dave Hacquebord,
  3939.         Sunshine Bulletin board,
  3940.         Tampa, Fl.
  3941.         Voice: 1-813-884-4267
  3942.         Data:  1-813-887-3984
  3943.  
  3944.     Everex Evercom 2400
  3945.     -------------------
  3946.     The Everex Evercom 24 is an internal 2400 BAUD modem.  It has 4 switches on
  3947.     the mounting bracket.  If you are using COM1 then all switches should be in
  3948.     the OFF position.  If you are using COM2 see the Installation Guide for the
  3949.     correct switch settings.
  3950.  
  3951.     The Evercom does not have  non-volatile memory like the Hayes 2400  and the
  3952.     ATZ command will reset the modem to factory defaults.   It is therefore not
  3953.     necessary to  use CONFIG to set  the Hayes 2400 defaults.   Because of this
  3954.     major difference you must  use CONFIG parameter 225 to  change the standard
  3955.     modem defaults.  Select parameters 2 and 5 and enter the command just as it
  3956.     is but with the addition of &D2.  This will instruct RBBS-PC to add  &D2 to
  3957.     the  standard modem initialization  string each  time the  system recycles.
  3958.     Please  note that although the Evercom 24  manual indicates that &D2 is the
  3959.     default that this is a misprint in their manual and &D0 is the real default
  3960.     for the  &D command.   Parameter 7 can  be ignored since  they this  is for
  3961.     battery backed up modems only.
  3962.  
  3963.  
  3964.  
  3965.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     D-4
  3966.  
  3967.  
  3968.     NOTE: Make  sure that &D2  is inserted immediately following  the "AT" when
  3969.     modifying parameters 2 and 5 of parameter 225!
  3970.  
  3971.     A special thanks goes to Carl Margolis (Everex) for his help in identifying
  3972.     these restrictions so that Evercom 24 users can now reliably use RBBS-PC.
  3973.  
  3974.     Do not select parameter 225 if you are using an Everex 1200 BAUD modem.
  3975.  
  3976.     FASTCOMM 2496 Turbo Modem
  3977.     -------------------------
  3978.     The FASTCOMM 2496  9600 and  19200 baud  modems work  with RBBS-PC  without
  3979.     modifications to RBBS-PC.  However some unusual quirks were  noted with the
  3980.     FASTCOMM hardware.  The modems  would NOT follow terminal baud rate  in the
  3981.     command  mode if  the transition  was from  300 to  9600 (or  19,200) baud.
  3982.     Therefore, if RBBS-PC were configured to initially operate at 9600 baud, it
  3983.     would not properly reset after a 300 baud call.   It would, however, follow
  3984.     all other changes  within the range  of RBBS-PC.   If it was  configured to
  3985.     initially answer at both 2400 and 4800 baud and it worked equally well with
  3986.     calls at  300,  1200, 2400,  4800,  9600 and  19200  baud for  both  cases.
  3987.     Therefore set CONFIG parameter 208 to 2400 baud!
  3988.  
  3989.     It is recommended that CONFIG parameter 224 be set to answer on one ring!
  3990.  
  3991.     Specific instructions for modem set up are as follows:
  3992.  
  3993.       1) Using  the  BASIC program  SETFC.BAS  below,  set  the  default  modem
  3994.          settings.  This  can  also  be done  manually  from  a  communications
  3995.          program.   The  speed that  is  used to  establish the  default  modem
  3996.          settings  is the speed to which the  modem defaults on reset and power
  3997.          on.  It  is best to do this setup at  the same speed that RBBS-PC uses
  3998.          as its default speed, namely 2400 baud.   In any case do not do it  at
  3999.          9600 baud.
  4000.  
  4001.       2) Tell RBBS-PC  to  open  the  modem at  2400  baud  by  setting  CONFIG
  4002.          parameter 208 to 2400 baud.
  4003.  
  4004.       3) Use CONFIG parameter 225  to change the modem reset command from "ATZ"
  4005.          to "AAATZ".
  4006.  
  4007.     This string of  A's resets the  modem to the terminal  baud rate so  it can
  4008.     respond to the other  commands.  If you want to experiment, watch the modem
  4009.     respond to you when you change  baud rates in your favorite  communications
  4010.     program.   This  modem function  is referred  to as  "autobaud".   You will
  4011.     probably not  see the  first "A" echo  and sometimes not  the second.   You
  4012.     should always  see the third  "A".  Others  have advised that  their modems
  4013.     would "autobaud" from 300 to 9600 baud.  Mine would not.
  4014.  
  4015.       4) Use CONFIG parameter 225  to change the modem answer string to include
  4016.          X2 instead of X1 (the CONFIG default).
  4017.  
  4018.     Stan Staten has  extensive experience  with RBBS-PC and  the FASTCOMM  2496
  4019.     modems.  If you have  any questions regarding their use with  RBBS-PC, give
  4020.     Stan's RBBS-PC system a call at (301) 869-7650.
  4021.  
  4022.     The following is  STAN's SETFC.BAS program's BASIC  source code to set  the
  4023.     FASTCOMM  modem.   It can  be run  under  the BASIC  interpreter or  can be
  4024.     compiled using  QuickBASIC from Microsoft.   SETFC.EXE and  SETFC2.EXE (for
  4025.     COM2:) can be downloaded from Stan's BBS.
  4026.  
  4027.  
  4028.  
  4029.     APPENDIX D -- Modems with RBBS-PC                                       D-5
  4030.  
  4031.  
  4032.     10   'title: 'SETFC.BAS, Copyright 1986 by H. Stanley Staten
  4033.     20   'SysOp 3 WINKs BBS, 301-670-9621
  4034.     30   '
  4035.     40      DEFINT A-Z
  4036.     50      CLEAR
  4037.     60  '
  4038.     70  ' ********************************************************************
  4039.     80  ' * ROUTINE TO INITIALIZE THE FASTCOMM 2496 MODEM'S FIRMWARE         *
  4040.     90  ' ********************************************************************
  4041.     100  '
  4042.     110  COM.PORT$ = "COM1"                 'Change to "COM2:" for COM2: use
  4043.     120  PRINT "Setting FASTCOMM 2496 firmware for RBBS-PC on " + COM.PORT$
  4044.     130  '
  4045.     140  ' ********************************************************************
  4046.     150  ' *                                                                  *
  4047.     160  ' * INITIALIZE THE FASTCOMM 2496 VOLATILE MEMORY.  SET as follows    *
  4048.     170  ' *                                                                  *
  4049.     180  ' *         AT#F       = Set to factory defaults                     *
  4050.     190  ' *         AT#LCN     = Set carrier detect to normal                *
  4051.     200  ' *         AT#LDN     = Set DTR to normal                           *
  4052.  
  4053.     210  ' *         AT#LX2     = Set for XON/XOFF flow control               *
  4054.  
  4055.     220  ' *         ATS7=30    = Set wait for answer tone to 30 seconds      *
  4056.  
  4057.     230  ' *         ATM0       = Turn speaker off                            *
  4058.  
  4059.     240  ' *         ATV1       = Issue long form of results codes            *
  4060.  
  4061.     250  ' *         ATX2       = Full result messages                        *
  4062.  
  4063.     260  ' *         ATS57=1    = Hang up and reset automatically executed    *
  4064.  
  4065.     270  ' *         ATE0       = Do not echo modem commands back to the PC   *
  4066.  
  4067.     280  ' *         ATS10=10   = To cause to reset on loss of carrier faster *
  4068.  
  4069.     290  ' *         ATS58=3    = Force a 19200 Baud call to 9600 Baud locally*
  4070.     300  ' *         ATS22=46   = Suggested by the vendor                     *
  4071.     310  ' *         ATS0=0     = Don't answer until told to.                 *
  4072.     320  ' *         AT#W       = Write settings to non volatile memory       *
  4073.     330  ' *                                                                  *
  4074.     340  ' ********************************************************************
  4075.  
  4076.     350  '
  4077.     360  OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3
  4078.     370  PRINT #3,"AAAAAAAT"
  4079.     380  PRINT #3,"AT#F"
  4080.     390  PRINT #3,"AT#LCN"
  4081.     400  PRINT #3,"AT#LDN"
  4082.     410  PRINT #3,"AT#LX2"
  4083.     420  PRINT #3,"ATS7=30"
  4084.     430  PRINT #3,"ATM0"
  4085.     440  PRINT #3,"ATV1"
  4086.     450  PRINT #3,"ATX2"
  4087.     460  PRINT #3,"ATS57=1"
  4088.     470  PRINT #3,"ATE0"
  4089.     480  PRINT #3,"ATS10=10"
  4090.     490  PRINT #3,"ATS58=3"
  4091.  
  4092.  
  4093.  
  4094.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     D-6
  4095.  
  4096.  
  4097.     500  PRINT #3,"ATS22=46"
  4098.     510  PRINT #3,"ATS0=0"
  4099.     520  PRINT #3,"AT#W"
  4100.     530  SYSTEM
  4101.  
  4102.     Leading Edge Series L 2400B Modem
  4103.     ---------------------------------
  4104.     Gregg Snyder, SysOp of "The Elusive Diamond" - DGS (Alpha)  System, and Jim
  4105.     Thompson of "The  Break" -DGS (Delta) System (Data: 703-680-9269) are to be
  4106.     credited with  documenting how to get the Leading Edge Series L 2400B modem
  4107.     to run with  RBBS-PC ("all modems are  Hayes-compatible, but some are  less
  4108.     Hayes-compatible than others").
  4109.  
  4110.     First, you must  set CONFIG parameter 228 to  open the modem at  1200 baud.
  4111.     Next, go to CONFIG parameter 225 and set the modem commands as follows:
  4112.  
  4113.     1. Reset the modem                : ATB1H0L1M0C1
  4114.  
  4115.     2. Initialize the modem           : ATH0B1L1M0Q1E0S0=254
  4116.        Note: End item 2 with:
  4117.          S0=1Q0X1 if answer on 0 rings
  4118.          S0=254 if answer on >0 rings (no ring-back)
  4119.          S0=255 if answer on >0 rings (with ring-back)
  4120.  
  4121.     3. Count the number of rings      : ATS1?
  4122.  
  4123.     4. Answer the phone               : ATQ0X1V1A
  4124.  
  4125.     5. Take the phone off the hook    : ATH1L1M0
  4126.  
  4127.     6. Clear the modem's firmware     : AT&F
  4128.  
  4129.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  4130.        Note: End item 7 with:
  4131.          Q1 if item 2 ends with S0=255
  4132.  
  4133.     8. Write to modem's firmware      : &W
  4134.  
  4135.     These  settings have  been tested  for  more than  a year  by Jim  Thompson
  4136.     beginning with RBBS-PC 15.1C.
  4137.  
  4138.     MICROCOM AX\9624c
  4139.     -----------------
  4140.     First set the Microcom AX\9624c switch settings as follows:
  4141.  
  4142.          CONFIGURATION SWITCH SETTINGS FOR THE MICROCOM AX\9624c MODEM
  4143.          =============================================================
  4144.  
  4145.                      1   2   3   4   5   6   7   8   9   10
  4146.                      --------------------------------------
  4147.     Front Switch -   U   D   D   D   D   U   U   D   U   U
  4148.  
  4149.     Rear Switch  -   U   U   D   U   D   D   D   D   -   -
  4150.  
  4151.     Change CONFIG parameter  228 to  open the  modem initially  for 9600  baud.
  4152.     Then go  to CONFIG  parameter  225 and  change some  of  the default  Hayes
  4153.     commands.
  4154.  
  4155.  
  4156.  
  4157.     APPENDIX D -- Modems with RBBS-PC                                       D-7
  4158.  
  4159.  
  4160.     Within  parameter  225,  you  will  want  to  change  the  second  command,
  4161.     "Initialize the modem."   If you want RBBS-PC to answer  on one ring set it
  4162.     to:
  4163.  
  4164.                  ATM0Q1S2=255S10=45E0S0=254&D2
  4165.  
  4166.     To answer on zero rings, set it to:
  4167.  
  4168.                  ATM0Q1S2=255S10=15E0S0=0Q0X1&D3
  4169.  
  4170.     Please  note that  these change  the default  Hayes commands  supplied with
  4171.     RBBS-PC for S10.  Also note  that an &D command was  added to the end.   If
  4172.     you  are set  up to  answer on  ring zero  and your  modem sometimes  stops
  4173.     answering for  no reason that you can isolate, alter  the S10 value to "45"
  4174.     and &D2.  You may also  want to activate CONFIG parameter 236 to  "wake up"
  4175.     the modem.
  4176.  
  4177.     These  configurations will  allow RBBS-PC  to establish  a MNP  reliable or
  4178.     non-reliable  connection from  300 to  9600 BAUD  using the  AX\9624c's MNP
  4179.     class 6 Universal Link Negotiation capability.
  4180.  
  4181.     Prometheus 2400G
  4182.     ----------------
  4183.     Underneath the  2400G is a bank  of 10 switches that  set certain operating
  4184.     characteristics of the ProModem 2400G.  Only 3 (1,2 & 10) of these switches
  4185.     are currently implemented.   The others are reserved for  future expansion.
  4186.     All  three of these switches must  be in the off position  for the 2400G to
  4187.     function properly with RBBS-PC.
  4188.  
  4189.     USRobotics Courier and HST
  4190.     --------------------------
  4191.     Both the  US Robotics COURIER  2400 and  COURIER HST modem  switch settings
  4192.     should be as follows:
  4193.      1 2 3 4 5 6 7 8 9 10   gang switch
  4194.      U U U D D U U D D D      UUU      (Where U = Up = Off and  D = Down = On)
  4195.  
  4196.     The  Courier 2400  is a  high quality,  trouble free  modem that  is highly
  4197.     recommended and which works well with all the RBBS-PC defaults.
  4198.  
  4199.     The USR COURIER HST modem switch setting should be as follows:
  4200.      1 2 3 4 5 6 7 8 9 10   gang switch
  4201.      U U U D D U U D D U      UUU      (Where U = Up = Off and  D = Down = On)
  4202.  
  4203.     RBBS-PC supports both modes of the USR  HST Modems.  In CONFIG, specify the
  4204.     number of seconds between modem commands to be 1.
  4205.  
  4206.     MODE 1:
  4207.     -------
  4208.     In the  first mode of operation, CONFIG parameter  228 should be set to the
  4209.     highest speed you intend to support.  When the HST modem detects a carrier,
  4210.     it sends (at the baud rate set in parameter 228) an ASCII string to RBBS-PC
  4211.     which contains the  new BAUD rate.  The modem will change it's baud rate to
  4212.     match that of the caller's and RBBS-PC will correctly adjust to the modem's
  4213.     new baud rate.  The following CONFIG parameters should be set:
  4214.  
  4215.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  4216.     Parameter 223 -- set to 2
  4217.     Parameter 227 -- set to NO
  4218.     Parameter 228 -- set to 9600
  4219.  
  4220.  
  4221.  
  4222.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     D-8
  4223.  
  4224.  
  4225.     Parameter 237 -- set to NO
  4226.     Parameter 244 -- set to YES
  4227.     Parameter 245 -- set to NO
  4228.  
  4229.     You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  4230.     8  different modem commands.  The ONLY command  that needs to be changed is
  4231.     number 7, "Initialize the modem firmware".  It should be:
  4232.  
  4233.               AT&A1&B0&H1&I0&M4&N0&R2&S1&Y3
  4234.  
  4235.     The meaning of this HST-specific initialization string is as follows:
  4236.     &A1 = Display/ARQ result codes
  4237.     &B0 = DTE/DCE rate follows connection rate
  4238.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  4239.     &I0 = Flow control disabled
  4240.     &M4 = Normal if ARQ connection cannot be made
  4241.     &N0 = Negotiate highest possible link rate with remote modem
  4242.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  4243.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI
  4244.                  command, substitute &R1 for &R2.
  4245.     &S1 = Modem controls Data Set Ready
  4246.     &Y3 = Nondestructive, unexpedited break signal
  4247.  
  4248.     The highest effective data transmission rate in this mode is 9600 baud.
  4249.  
  4250.     MODE 2:
  4251.     -------
  4252.     In this  second  mode the  USR  Modem  supports the  MNP  data  compression
  4253.     technique  which  effectively transmits  data over  the  phone at  rates in
  4254.     excess of 17K baud.  Setting up your HST to support both the  standard 300,
  4255.     1200, 2400, and  the higher 9600 and  17K baud rates requires  that the HST
  4256.     modem  speed  be "fixed"  at  19.2K  baud.   The  PC  running RBBS-PC  will
  4257.     communicate with the  HST modem attached to  it at a fixed rate  of 19.2KB.
  4258.     The  actual  data link  speed will  default to  the  highest rate  that the
  4259.     caller's modem will support.
  4260.  
  4261.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  4262.     Parameter 223 -- set to 2
  4263.     Parameter 227 -- set to NO
  4264.     Parameter 228 -- set to 19200
  4265.     Parameter 237 -- set to YES
  4266.     Parameter 244 -- set to YES
  4267.     Parameter 245 -- set to NO
  4268.  
  4269.     You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  4270.     8 different modem commands.  The  ONLY command that needs to be changed  is
  4271.     number 7, "Initialize the modem firmware".  It should be:
  4272.  
  4273.               AT&A1&B1&H1&I0&M4&N0&R2&S1&Y3
  4274.  
  4275.     The meaning of this HST-specific initialization string is as follows:
  4276.     &A1 = Display/ARQ result codes
  4277.     &B1 = DTE/DCE rate is fixed at allowable rate
  4278.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  4279.     &I0 = Flow control disabled
  4280.     &M4 = Normal if ARQ connection cannot be made
  4281.     &N0 = Negotiate highest possible link rate with remote modem
  4282.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  4283.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI
  4284.  
  4285.  
  4286.  
  4287.     APPENDIX D -- Modems with RBBS-PC                                       D-9
  4288.  
  4289.  
  4290.                  command, substitute &R1 for &R2.
  4291.     &S1 = Modem controls Data Set Ready
  4292.     &Y3 = Nondestructive, unexpedited break signal
  4293.  
  4294.     This will enable  the COURIER HST to  use the built-in MNP  protocol at the
  4295.     highest possible baud rate that can be negotiated with the calling modem --
  4296.     providing  the calling  modem is  also a  COURIER HST  modem.   The highest
  4297.     effective data transmission rate in this mode is 17200 baud.
  4298.  
  4299.     After replying NO to  CONFIG parameter 225 and changing  the initialization
  4300.     modem  command as  described  above for  either MODE  1 or  MODE 2  for the
  4301.     COURIER HST, CONFIG parameter 231 should be selected in order to initialize
  4302.     the COURIER  HST.  This places the setting in the HST's non-volatile random
  4303.     access memory (NVRAM)  and need only  be repeated if  the NVRAM is  changed
  4304.     (i.e. you use the  modem with applications other  than RBBS-PC that  change
  4305.     the NVRAM).
  4306.  
  4307.     For the COURIER  2400, set CONFIG parameter  228 to 2400.   For the COURIER
  4308.     HST, set parameter 228 as specified above for either MODE 1 or MODE 2.
  4309.  
  4310.     USRobotics HST Dual Standard
  4311.     ----------------------------
  4312.     The USRobotics Dual  Standard is an  excellent choice for  BBS SysOps.   It
  4313.     combines reliability, performance and compatibility.  The biggest hurdle is
  4314.     the price!   However, SysOps can  contact USRobotics at  (800) DIAL-USR for
  4315.     information about SysOp special prices.
  4316.  
  4317.     The Dual Standard can support low-speed connections, as well as V.32, V.42,
  4318.     V.42bis and HST-mode connections.  A proper configuration of the  BBS modem
  4319.     will allow a caller with nearly ANY modem to connect with your BBS.
  4320.  
  4321.     The  file   MODEMS.SET  contains  proper  switch   settings,  firmware  and
  4322.     initialization  settings,  and  CONFIG  parameter  settings  for  the  dual
  4323.     standard.  However, you should consider the following:
  4324.  
  4325.       1) The dual standard  is flexible.  The  configuration suggested for
  4326.          RBBS-PC will allow nearly  all modems to connect to your BBS, but
  4327.          perhaps not at  the optimum  speed.  The  main consideration  for
  4328.          performance  is the use of data compression.  RBBS-PC will ENABLE
  4329.          data  compression on  your modem.   If  your callers  also enable
  4330.          compression, V.32 throughput  when transferring COMPRESSED  files
  4331.          will suffer.  However, throughput when capturing large text files
  4332.          (such  as reading  messages non-stop)  will  be much  higher than
  4333.          normal.  You  may want to post  a bulletin to your  users that if
  4334.          they  want FAST  FILE TRANSFER,  they should  DISABLE compression
  4335.          (&K0 is the modem command for the dual standard).  If they do so,
  4336.          your  modem will also disable  compression for their  call.  This
  4337.          will  allow each caller to decide if they want maximum throughput
  4338.          for compressed files, or for text files.
  4339.  
  4340.       2) For  best results,  the baud rate  is locked  between RBBS-PC  and the
  4341.          modem.   This allows the modem to negotiate speed with the caller, but
  4342.          RBBS-PC can transfer data as fast as possible.  This should work under
  4343.          all instances, but if  you have trouble configuring doors  or external
  4344.          protocols, you may wish to turn off this feature.   To do this, change
  4345.          the  baud  lock command  in  the FIRMWARE  initialize  command (CONFIG
  4346.          parameter 225) to  ???, and tell RBBS-PC to NOT  remain at the initial
  4347.          baud rate (CONFIG parameter ???).
  4348.  
  4349.  
  4350.  
  4351.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                    D-10
  4352.  
  4353.  
  4354.     ZOOM Modem HC2400
  4355.     -----------------
  4356.     In order to  use the "ZOOM HC2400" modem with  RBBS-PC parameter 225 should
  4357.     be changed as shown below.  Only #2 and #5 need to be changed.
  4358.  
  4359.     Changes in #2.  Add '&D2' just after  'AT'.  Change 'S2=255' to 'S2=43'.
  4360.  
  4361.     Change  in #5.  Add "&D2' just after  'AT'.
  4362.  
  4363.     1. Reset the modem                : ATZ
  4364.     2. Initialize the modem           : AT&D2M0Q1S2=43S10=30E0Q0X1S0=0
  4365.        Note: End item 2 with:
  4366.          S0=1Q0X1 if answer on 0 rings
  4367.          S0=254 if answer on >0 rings (no ring-back)
  4368.          S0=255 if answer on >0 rings (with ring-back)
  4369.     3. Count the number of rings      : ATS1?
  4370.     4. Answer the phone               : ATQ0X1V1A
  4371.     5. Take the phone off the hook    : AT&D2Q1E1H1M0
  4372.     6. Clear the modem's firmware     : AT&F
  4373.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  4374.        Note: End item 7 with:
  4375.  
  4376.          Q1 if item 2 ends with S0=255
  4377.  
  4378.     8. Write to modem's firmware      : &W
  4379.  
  4380.     For further information contact:
  4381.     Jeff L. Watts
  4382.     STATESVILLERBBS-PC  Data # (704) 873-8482
  4383.  
  4384.  
  4385.  
  4386.     APPENDIX E -- RBBS-PC and the Hearing-Impaired                          E-1
  4387.  
  4388.  
  4389.     APPENDIX E -- RBBS-PC and the Hearing-Impaired
  4390.     ----------------------------------------------
  4391.     Telecommunications Devices for the Deaf (TDDs) use the Baudot character set
  4392.     (i.e. 5-bit)  and  utilize modems  that  transmit at  45  baud and  do  not
  4393.     generate a  carrier signal.   This is  because such devices  were initially
  4394.     adaptations   of  surplus   Western  Union   TTY  machines   for  telephone
  4395.     communications.    The widespread  use of  Baudot  devices by  the hearing-
  4396.     impaired,  the previous high cost of computers  and modems, and the lack of
  4397.     software designed for electronic communications,  has impeded the change to
  4398.     ASCII communications by the hearing-impaired community.
  4399.  
  4400.     Equipment manufacturers have also made it difficult for the deaf to change.
  4401.     When TDD's with ASCII code transmission capability began to be offered, the
  4402.     majority of manufacturers limited them to only 110 baud and put disclaimers
  4403.     in their manuals  that said ASCII was available for  use but that "computer
  4404.     language" was "less reliable" and hard to use.  Their limiting of the TDD's
  4405.     output screen to 12 to 20 characters further compounded the problem because
  4406.     the screen would overwrite several times to display one line of text from a
  4407.     host  system.   The  manufacturers'  "solution"  to  this  problem  was  to
  4408.     recommend printers  for communication with such "host"  systems as RBBS-PC.
  4409.     Some units now  offer both 110 and 300 baud  ASCII transmission in addition
  4410.     to  the  45 baud  Baudot.    Unfortunately, these  typically  have  only 20
  4411.     character screens.
  4412.  
  4413.     In December of 1984, Ted Janossy of Rochester, Minnesota, sent a three-page
  4414.     letter to Tom Mack  describing the above situation.  Ted's letter motivated
  4415.     Tom  to test and verify the  "ring-back" feature of RBBS-PC in  12.4A.   It
  4416.     had not been tested in earlier versions because Tom assumed (presumptuously
  4417.     and insensitively) that "real SysOps don't use ring-back RBBS-PC's."  Ted's
  4418.     letter  awakened   Tom  to   the  potential   of   RBBS-PC  to   facilitate
  4419.     communications  among the hearing-impaired.  In the awakening, Tom also had
  4420.     a chance to look down at his own feet of clay.
  4421.  
  4422.     RBBS-PC can  be configured to answer calls only after a specified number of
  4423.     rings  (i.e.  15).    The  telephone  companies  wire  the  homes  of   the
  4424.     hearing-impaired  such that  when the  phone rings,  the lights  within the
  4425.     house flash on and off.
  4426.  
  4427.     With RBBS-PC  a SysOp can  specify the number of  rings RBBS-PC is  to wait
  4428.     before  answering the phone automatically.  Setting this number high enough
  4429.     allows  someone with  a hearing  impairment time  enough to  get to  the PC
  4430.     running RBBS-PC.   Pressing the PC's function key 5  (F5) causes RBBS-PC to
  4431.     answer the  phone immediately.  The  caller would know that  someone was at
  4432.     the keyboard because  RBBS-PC answered the phone  in less than the  agreed-
  4433.     upon  number of rings.  The caller would  log onto RBBS-PC normally and the
  4434.     person at the PC  keyboard would be able to see who it  was.  If the person
  4435.     who was called wanted to "chat" with the caller, all they  would have to do
  4436.     would be to press function key 10 (F10).
  4437.  
  4438.     If RBBS-PC didn't  answer the  telephone within the  agreed-upon number  of
  4439.     rings, the  caller would know that whomever  was being called couldn't come
  4440.     to the keyboard.  The caller would then log on and leave a message.
  4441.  
  4442.  
  4443.  
  4444.     APPENDIX F -- RBBS-PC And The AT's RS-232 Cable                         F-1
  4445.  
  4446.  
  4447.     APPENDIX F -- RBBS-PC And The AT's RS-232 Cable
  4448.     -----------------------------------------------
  4449.     The RS-232 serial connector is different for the AT than the PC or XT.  The
  4450.     AT  uses a  connector  called a  DB-9,  which is  a 9  pin  connector.   An
  4451.     alternative  to buying the AT serial cable  from IBM, ($65-$80), is to make
  4452.     your own.  A ten-wire cable  can be purchased from any local computer store
  4453.     for about $.80  per foot, and the DB-9 and RS-232 connectors with hoods can
  4454.     be purchased from Radio Shack.   The total cost should be about $12.00.   A
  4455.     modem hooked up  to the AT will work fine with  the 9 pins connected in all
  4456.     terminal functions, except for auto-answer applications such as RBBS-PC.
  4457.  
  4458.     RBBS-PC requires pin 1 from the modem to be hooked up to the chassis ground
  4459.     on the AT or it can't answer the phone.   There are two ways to hook up the
  4460.     ground wire on the  computer end.  The first way is to  use a metal hood to
  4461.     cover the DB-9 connector.   Wrap a bare wire  that is attached to pin  1 of
  4462.     the RS-232 connector around the cable on the DB-9 end.  When the metal hood
  4463.     is screwed  down over the  cable a connection will  be made.   When using a
  4464.     plastic DB-9 hood simply solder a wire from pin 1 on the RS-232 end  to the
  4465.     metal body  of the DB-9 connector.   Since documentation is  scarce for the
  4466.     AT,  following figure lists the necessary pin connections for those wanting
  4467.     to make their own AT RS-232 cable.
  4468.  
  4469.        DB-9       RS-230
  4470.     (Computer     (Modem           Description
  4471.        End)        End)
  4472.     =========    =======        ==================
  4473.  
  4474.      GROUND -------- 1 -------- Protective Ground
  4475.        1    -------- 8 -------- Data Carrier Detect
  4476.        2    -------- 3 -------- Receive Data
  4477.        3    -------- 2 -------- Transmit Data
  4478.        4    ------- 20 -------- Data Terminal Ready
  4479.        5    -------- 7 -------- Signal Ground
  4480.        6    -------- 6 -------- Data Set Ready
  4481.        7    -------- 4 -------- Request to Send
  4482.        8    -------- 5 -------- Clear to Send
  4483.        9    ------- 22 -------- Ring Indicator
  4484.  
  4485.  
  4486.  
  4487.     APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors"            G-1
  4488.  
  4489.  
  4490.     APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors"
  4491.     ------------------------------------------------------------
  4492.     A bug in  Microsoft's BASIC  and QuickBASIC compilers  requires SysOps  who
  4493.     wish to  recompile RBBS-PC to apply the following patches.  The problem has
  4494.     to do with  BASIC's treatment of  the communications port  when you exit  a
  4495.     BASIC program.  The Data  Terminal Ready (DTR) line MUST be kept  on at all
  4496.     times, or the modem will hang up on your caller.
  4497.  
  4498.     If  you are  recompiling RBBS-PC,  and you  plan to  use Doors  or external
  4499.     protocols, you  must make the  following patches.   Any hex  editor can  be
  4500.     used: DEBUG, which  comes with DOS,  or the Norton  Utilities are just  two
  4501.     examples.   A  tutorial on how  to use  DEBUG is  beyond the scope  of this
  4502.     document.
  4503.  
  4504.     There are actually two  patches, depending on the  version of the  compiler
  4505.     you have.  The first patch is for QuickBASIC 2, 3 & 4 or BASCOM 6.0.
  4506.  
  4507.     The file you will  patch is BCOMx0.LIB (where X is  the QB version number).
  4508.     Of course, you will save your original file before applying the  patch.  To
  4509.     make the fix, you will search for the following string of HEX digits: 83 C2
  4510.     04 32 C0 EE.  The assembly code for this string is:
  4511.  
  4512.     83 C2 04  ADD DX,4
  4513.     32 C0     XOR AL,AL
  4514.     EE        OUT DX,AL
  4515.  
  4516.     We need  to change the XOR  AL,AL to MOV AL,1.   Change the "32  C0" to "B0
  4517.     01".  Make this change in both places where the string occurs.
  4518.  
  4519.     If  you use QB 4.5,  or BASCOM 7.0,  the patch is different.   Look for the
  4520.     string: B0 00 E3 01 40 83 C2 04 EE.  In assembly code, it is:
  4521.  
  4522.     B0 00    MOV  AL,00
  4523.     E3 01    JCXZ nnnn
  4524.     40       INC  AX
  4525.     83 C2 04 ADD  DX,4
  4526.     EE       OUT  DX,AL
  4527.  
  4528.     Again, we want to put a  1 in AL, so we change  the "B0 00" to B0 01".   We
  4529.     also need to remove the INC AX, so change the "40" to "90".
  4530.  
  4531.     You  may also want  to make an  additional patch.  This  patch will prevent
  4532.     QuickBASIC from  pausing on a fatal  error.  Normally, BASIC  says "press a
  4533.     key to  continue".   If RBBS-PC  were allowed  to recycle,  it would  do so
  4534.     without  trouble, but BASIC will hold up your  board until you press a key.
  4535.     If you have QuickBASIC 2.01 or 3.0, search the BCOMx0.LIB for the following
  4536.     string of HEX  digits: E2 F8  E8 00 00 E8  00 00 E8  00 00 C3.   Change the
  4537.     MIDDLE "E8 00 00"  to "C3 90 90".   If you have QuickBASIC 4.5,  search for
  4538.     the string  "B8 07  0C CD  21" and  change the "CD  21" to  "90 90".   Now,
  4539.     whenever  BASIC can't handle  an error,  it will  allow RBBS-PC  to recycle
  4540.     quickly.
  4541.  
  4542.     If you have  BASCOM 7.0, you can  apply the patch for QB  4.5, although you
  4543.     will have to patch whichever BC70xxxx.LIB file you use to link.
  4544.  
  4545.     Thanks to  Doug Azzarito, Jeff  Porter, Rod Bowman,  Kenny Gardner  and Bob
  4546.     Eyer for information on these patches.
  4547.  
  4548.  
  4549.  
  4550.     APPENDIX H -- Running a multiple node RBBS-PC                           H-1
  4551.  
  4552.  
  4553.     APPENDIX H -- Running a multiple node RBBS-PC
  4554.     ---------------------------------------------
  4555.     Before you consider  running multiple  nodes (i.e. allowing  more than  one
  4556.     caller on your BBS at a time), you should already have RBBS-PC working well
  4557.     on  one node.   If  you  don't have  your  board running  smoothly with  NO
  4558.     crashes, STOP right here and  concentrate on your single-node system.   You
  4559.     will  only compound your  errors and frustrate  yourself if you  try to get
  4560.     RBBS-PC operating on multiple nodes before you get it operating well on one
  4561.     node.
  4562.  
  4563.     When  configuring a multi-node RBBS-PC, you may  have to make a decision of
  4564.     SPEED vs. STORAGE.  In a  LAN environment, accessing data stored on another
  4565.     machine  is slow.  Therefore, you may want to keep copies of ALL text files
  4566.     on each  machine, and ONLY share  those files that  are mandatory (MESSAGE,
  4567.     USER, UPLOAD dirs).  However, to  do this you will have to keep  nearly ALL
  4568.     RBBS-PC files  updated on EACH  RBBS-PC machine.   This can  waste storage,
  4569.     increase  maintenance hassles, but it does greatly improve performance on a
  4570.     LAN.   Other single-machine environments  (such as DESQview,  PC-Slaves) do
  4571.     not require you to make this choice.
  4572.  
  4573.     To  make multi-node  operation  easier,  you may  want  to  put all  "node-
  4574.     specific" files in separate directories (i.e. C:\RBBS\NODE1, C:\RBBS\NODE2,
  4575.     etc.).   This will reduce  the chances of having  one node overwrite a file
  4576.     from another node.   The following example assumes you  have created a NODE
  4577.     subdirectory for each node on your system.
  4578.  
  4579.     There are certain  parameters in the CONFIG utility which  you will want to
  4580.     consider adjusting in order to facilitate your multi-node RBBS-PC.
  4581.  
  4582.     To  begin with, you will  need to make an CONFIG  .DEF description file for
  4583.     each node.   Copy the  file RBBS-PC.DEF  to RBBSnPC.DEF, where  "n" is  the
  4584.     number for the node (e.g. RBBS1PC.DEF, RBBS2PC.DEF, etc.).  You will need a
  4585.     configuration description files for each node, even if it is a "local" node
  4586.     without a modem.
  4587.  
  4588.     When you start the CONFIG utility, you can either specify the configuration
  4589.     description file name  after the  CONFIG program name  on the command  line
  4590.     (e.g.  CONFIG RBBS1PC.DEF), or you can let  CONFIG ask you whether you will
  4591.     be  running multiple  RBBS-PCs,  answer the  question  with "Y",  and  then
  4592.     specify the  number of  the node you  wish to  edit (answering "1"  at this
  4593.     point would then edit RBBS1PC.DEF).
  4594.  
  4595.     The CONFIG  parameters that you will probably want to change in your multi-
  4596.     node system are as follows:
  4597.  
  4598.     161  Maximum  number  of concurrent  RBBS-PC's.   Set  this to  the maximum
  4599.          number of nodes you will ever run.  Remember that you need to allocate
  4600.          space  for your  local nodes,  also.   This  causes more  space to  be
  4601.          allocated  in the MESSAGE  files.  You  can change this  number at any
  4602.          time, and CONFIG will create the needed room, however the only harm in
  4603.          allocating EXTRA nodes is 128 bytes of wasted disk space per node.
  4604.  
  4605.     162  Environment running  multiple copies.   Select whichever  network type
  4606.          describes the environment you are running.   If you have some doubt as
  4607.          to which type fits your network, select  NETBIOS (DOS SHARE).  NETBIOS
  4608.          is a fairly universal network interface for applications software, and
  4609.          most LAN products offer support for it.
  4610.  
  4611.  
  4612.  
  4613.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     H-2
  4614.  
  4615.  
  4616.     88   System file for recording comments.  You can set  a different comments
  4617.          file for each node you are running (NODE1\COMMENTS and NODE2\COMMENTS,
  4618.          for example),  but RBBS-PC can allow a single, shared comments file in
  4619.          all but the CORVUS network.
  4620.  
  4621.     90   Caller  log files.   RBBS-PC does NOT  share log  files between nodes.
  4622.          Each node  must have a separate log file (NODE1\CALLERS, etc).  If all
  4623.          nodes write to the same  callers file, you will not be  able to figure
  4624.          out which node did what!
  4625.  
  4626.     93   File controlling scan for mail waiting.  If, for some reason, you want
  4627.          to have  some conferences or  sub-boards visible on  only one  of your
  4628.          nodes,  you  have the  option  of  creating separate  conference  mail
  4629.          control  files  (e.g.  NODE1\CONFMAIL.DEF,  NODE2\CONFMAIL.DEF,  etc.)
  4630.          This  is certainly not required, however,  and most installations will
  4631.          run with identical conference mail control files.
  4632.  
  4633.     100  File built dynamically to open a  door.  RBBS-PC creates an batch file
  4634.          for each  node when dooring.  This  batch file must be  unique for the
  4635.          node.  Name yours  NODEn\RCTTY.BAT, where "n" represents the  node you
  4636.          are configuring currently.
  4637.  
  4638.     104  The .BAT file to re-invoke  RBBS-PC.  If you do not make your RBBS.BAT
  4639.          file  read-only, you might have problems when several nodes attempt to
  4640.          access it  at the same time.   In most  cases, this can be  avoided by
  4641.          marking the .BAT file  "READ ONLY," but you may have  to have a unique
  4642.          BAT file for each node of RBBS-PC (e.g. RBBS1.BAT, RBBS2.BAT, etc.)
  4643.  
  4644.     204  Drives available  for downloading.  Make certain  to list not only the
  4645.          drives from the computer local to the node, but also the network drive
  4646.          letters.    We recommend  using  the  DOS SUBST  command  to make  the
  4647.          references  to local drives match those that the remote machine refers
  4648.          to them as.  For example,  if the remote machine refers to your  drive
  4649.          C: as drive W:, then use the DOS SUBST command and refer to it locally
  4650.          as drive W:, also.   It will reduce confusion for you to only refer to
  4651.          a  drive by one  name.  Remember,  you can  have up to  15 letters, no
  4652.          more.
  4653.  
  4654.     Now save  these  CONFIG parameters,  and you  will have  a "network  ready"
  4655.     configuration description  file.  You can copy this .DEF file for the other
  4656.     nodes,  and then change the  node-specific parameters for  each.  Remember,
  4657.     each node gets its OWN file!
  4658.  
  4659.     Remember also that  each node is likely to have a  different modem.  Not in
  4660.     ALL  cases, obviously,  but it  justifies a  reminder here.   Let's  take a
  4661.     typical example.  On one node, you are using a Hayes 2400 compatible modem,
  4662.     and  on  the other  a US  Robotics Courier  HST.   Obviously, the  setup is
  4663.     greatly different  between these  two.   It's not  a problem with  RBBS-PC,
  4664.     however.    When  you  have  CONFIG  loaded  and  are  editing  the  node's
  4665.     configuration description files just remember to put the proper information
  4666.     FOR THAT NODE into CONFIG parameters 221 (Comm port), 225  (Modem settings)
  4667.     and 231 (Firmware initialization).   Each node can have  a different modem,
  4668.     use  a different COM  port, run at  different speeds, or  even use a FOSSIL
  4669.     driver or not, and RBBS-PC can easily adjust to it.
  4670.  
  4671.     AUTOEXEC.BAT
  4672.  
  4673.     In the AUTOEXEC.BAT file for each node, you will want to  add the following
  4674.     environment variables.
  4675.  
  4676.  
  4677.  
  4678.     APPENDIX H -- Running a multiple node RBBS-PC                           H-3
  4679.  
  4680.  
  4681.     SET NODE=n (where "n" is the node number)
  4682.     SET DSZLOG=XFER-%node%.DEF
  4683.  
  4684.     There may be other  variables also required by  your individual setup,  but
  4685.     the RBBS.BAT  file expects to find  the %node% variable, and  some external
  4686.     file transfer protocol drivers  (DSZ, especially) will use the  DSZLOG file
  4687.     to pass success-or-fail back to RBBS-PC.  You need a separate one built for
  4688.     each node, and this will take care of it.
  4689.  
  4690.     SUB-BOARDS
  4691.  
  4692.     If you have sub-boards set up, you will create  a configuration description
  4693.     file  for each sub-board.  However, the configuration description file will
  4694.     not have  a node number in  its title.  The  configuration description file
  4695.     name  will take  the  form  "xxxxxxxC.DEF",  where  "xxxxxxx"  is  the  1-7
  4696.     character sub-board name.  For example,  a sub-board named GAMES would have
  4697.     a  configuration  description  file named  GAMESC.DEF.    This  is a  major
  4698.     difference  from   the  configuration   description  file  for   the  nodes
  4699.     themselves.   Each node has its  own file, because each  node is completely
  4700.     different (usually).   But with  a sub-board, parameters  about the  modem,
  4701.     etc.,  are  not  needed.    Therefore,  there  is  only  ONE  configuration
  4702.     description file for each sub-board.
  4703.  
  4704.     RBBS-PC will search for a conference .DEF file in THREE  places (and in the
  4705.     following order):3
  4706.       -  The default drive/path (when RBBS-PC starts)
  4707.       -  The location of the CURRENT message base (the one active when the JOIN
  4708.          command is used).
  4709.       -  Where the CONFERENCE menu file is stored (see CONFIG parameter 74).
  4710.  
  4711.     Here's an important  tip to  help with sub-boards  functioning on  multiple
  4712.     nodes.  CONFIG parameter 90 controls the system callers file.   Select this
  4713.     parameter,  and when CONFIG asks  you if you  want to have  a callers file,
  4714.     answer "N".   This will cause  the sub-board to use  the same callers  file
  4715.     that the  node is currently using.   Since you only  have one configuration
  4716.     description  for each sub-board, specifying a callers file in the sub-board
  4717.     configuration description file would cause  information from both nodes  to
  4718.     be written to the same callers file, and this would be mass confusion.
  4719.  
  4720.     DOORS
  4721.  
  4722.     Many  door  programs  (especially  older  ones)  are  simply   not  network
  4723.     compatible.   Some of the  doors that you have been  running for years will
  4724.     suddenly  not work in a  network.  Each  door is an individual  case.  Some
  4725.     doors are  hard-coded to pick  up DORINFO1.DEF and  cannot be made  to read
  4726.     DORINFO2.DEF.   Others are  locked into COM1  and cannot be  forced over to
  4727.     COM2.   And  still others  force you  to have  DORINFO1.DEF in  a directory
  4728.     called "C:\RBBS" and will  refuse to look anywhere else for the possibility
  4729.     of a second node's files.
  4730.  
  4731.     When you have a door which is network compatible, usually the documentation
  4732.     that accompanies the program will explain in detail how to install the door
  4733.     on your BBS.   In general, a  door program is installed in  one location on
  4734.     the  network, and  all  nodes will  run the  door  from that  subdirectory.
  4735.     RBBS-PC will create a DORINFOn.DEF,  where "n" is the node number,  when it
  4736.     exits to a door.  Almost all door programs want to know where this file is,
  4737.     and a variety of options are available to you.  One option often used is to
  4738.     set an  environment variable to the  drive letter that will  be the default
  4739.     drive for a specific node.
  4740.  
  4741.  
  4742.  
  4743.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     H-4
  4744.  
  4745.  
  4746.     For example, let's  say that our Node 1  system runs from W:\RBBS,  and our
  4747.     Node 2 system runs from Y:\RBBS.  If we set an environment variable in each
  4748.     node's AUTOEXEC.BAT  file called RBBS (e.g. SET RBBS=W:), then we can refer
  4749.     to the location of the DORINFOn.DEF file as:
  4750.  
  4751.           "%rbbs%\RBBS\DORINFO%node%.DEF".
  4752.  
  4753.     (Notice the  use of the %node%  environment variable, also.)   In this way,
  4754.     each node running the door will substitute the proper drive and node number
  4755.     to the door.
  4756.  
  4757.     MISCELLANEOUS TRICKS
  4758.  
  4759.     RBBS-PC is written to share resources with no conflict between  nodes.  For
  4760.     example, both nodes will access the same message and user files, and at the
  4761.     same time.   Under ordinary DOS circumstances, this would  cause a "sharing
  4762.     violation" error.  RBBS-PC, however, accesses files in "shared mode", which
  4763.     eliminates  this error.   There are  still times,  however, when  files are
  4764.     accessed  outside  the  direct  control  of  RBBS-PC.    To  eliminate  the
  4765.     possibility of sharing violation  errors at these times also,  we recommend
  4766.     marking all your TEXT, .COM,  .EXE, and .BAT files "read only".   (The read
  4767.     only attribute lets DOS  know that it's okay for  more than one process  to
  4768.     access this file at the  same time, because NEITHER process will be able to
  4769.     modify it.)
  4770.  
  4771.     To change  a file's attribute,  you will use the  DOS utility ATTRIB.   The
  4772.     command syntax is  "ATTRIB +R filespec", where filespec can  be anything up
  4773.     to and including "*.*".   Conversely, "ATTRIB -R filespec" will remove  the
  4774.     read only attribute so that the file may be changed.
  4775.  
  4776.     If  you are  operating your  multi-node RBBS-PC  with two  separate RBBS-PC
  4777.     subdirectories (i.e. all files duplicated in a second location except those
  4778.     which MUST be  shared), then this  precaution is  not needed.   If, on  the
  4779.     other hand, you are operating your multi-node RBBS-PC with a SINGLE RBBS-PC
  4780.     subdirectory, then we recommend  making all files read-only which  will not
  4781.     be written to by RBBS-PC.
  4782.  
  4783.     Files which will be written  to are the callers files, the user  files, the
  4784.     message files and  the upload directory.  Since these  are only opened from
  4785.     within  the RBBS-PC  program,  you will  not  have sharing  problems  here.
  4786.     (Note:   Some door programs require  access to these dynamic  files, and do
  4787.     not support shared access.  This can cause the door program to malfunction.
  4788.     This would be considered a door program which is NOT "network-able".)
  4789.  
  4790.  
  4791.  
  4792.     APPENDIX I -- RBBS-PC in a DESQview Environment                         I-1
  4793.  
  4794.  
  4795.     APPENDIX I -- RBBS-PC in a DESQview Environment
  4796.     -----------------------------------------------
  4797.     DESQview, from Quarterdeck Office Systems, provides an excellent, low-cost,
  4798.     software platform for RBBS-PC SysOps wanting multiple nodes on a single PC.
  4799.     This appendix has been provided to help  both the novice SysOp and the more
  4800.     experienced SysOp with the implementation of multiple nodes under DESQview.
  4801.  
  4802.     1. Basic Hardware Considerations
  4803.     --------------------------------
  4804.     If your computer has only 640k, you  will be limited to a single node  when
  4805.     using DESQview.  If, however, your computer has 1-Megabyte or  more of EEMS
  4806.     memory,  DESQview is  capable  of supporting  up  to  8-nodes on  a  single
  4807.     computer.   Providing two nodes  is simple.   Going beyond  two nodes  will
  4808.     require  special  software  and hardware.    This  appendix describes  both
  4809.     approaches.
  4810.  
  4811.     Multiple-node operation  will require an  EEMS-compatible memory  expansion
  4812.     card for your computer.  Make certain  your memory card is EEMS (not merely
  4813.     EMS, but  EEMS)  compatible!   If  you are  not  using an  80386  computer,
  4814.     DESQview  can ONLY swap EEMS  memory, so you  will want to  replace as much
  4815.     motherboard memory as possible with EEMS RAM.  This limitation is described
  4816.     in the DESQview documentation.   These limitations do not apply if  you use
  4817.     an 80386/SX  or 80386 based  computer. Therefore, we recommend  an 80386 as
  4818.     the  best choice  for a multi-node  host computer.   If you plan  to use an
  4819.     80386 or  80386/SX computer,  we suggest you  purchase DESQview/386,  which
  4820.     includes  the QEMM memory manager.  This  memory manager allows DESQview to
  4821.     use regular  80386 Extended memory in the same manner  as EEMS memory.  The
  4822.     QEMM  memory  manager  may be  purchased  separately  if  you already  have
  4823.     DESQview.
  4824.  
  4825.     Before you continue, make  certain you have read and  thoroughly understand
  4826.     the instruction manual provided with your copy of DESQview.
  4827.  
  4828.     2. Modifications to DOS CONFIG.SYS and RBBS-PC batch files
  4829.     -----------------------------------------------------------
  4830.     The first step in using DESQview with RBBS-PC is setting up your CONFIG.SYS
  4831.     file.   The FILES statement  is critical.   Allocate at least 16  files for
  4832.     each copy  of RBBS-PC.  QEMM/386  will allow you to  allocate files without
  4833.     using base RAM  (see the QEMM manual for details).   Increasing DOS BUFFERS
  4834.     will also help, but options such as a disk CACHE will determine the optimum
  4835.     setting.
  4836.  
  4837.     A 2-node CONFIG.SYS file should include the following:
  4838.  
  4839.          FILES=32
  4840.          BUFFERS=25
  4841.  
  4842.     You should  start RBBS-PC from a  two-level batch file.   A "startup" batch
  4843.     file  will perform  functions  required only  once, when  you  open the  DV
  4844.     window.   The second  file, RBBS.BAT, will  start RBBS-PC,  and process the
  4845.     recycling, doors and daily maintenance.
  4846.  
  4847.     In  our example,  the "startup" batch  file is  named START.BAT.   The node
  4848.     number for  each RBBS-PC node is  passed to START.BAT  by DESQview.   In so
  4849.     doing, you only need to provide a .DVP  file for each node.  All the  batch
  4850.     files are the same, which reduces confusion and maintenance.
  4851.  
  4852.  
  4853.  
  4854.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     I-2
  4855.  
  4856.  
  4857.      in C:\RBBS\START.BAT         Description of each line's function:
  4858.     --------------------------    --------------------------------------
  4859.     DVANSI                        loads DESQview ANSI.SYS driver
  4860.     SET NODE=%1                   Sets the  node number for this  RBBS-PC node
  4861.     LDFILTER.COM                  explained later in this appendix
  4862.     SET DSZLOG=XFER-%node%.DEF    set DOS environment variable for DSZ
  4863.     RBBS                          call RBBS.BAT
  4864.  
  4865.     The standard RBBS.BAT  (explained in section 13)  will be adequate  for use
  4866.     with each node of RBBS-PC under DESQview.
  4867.  
  4868.     3. What to Tell RBBS-PC's "CONFIG" Utility
  4869.     ------------------------------------------
  4870.     When  using DESQview,  you will  need to  change  some parameters  with the
  4871.     CONFIG program (supplied with RBBS-PC).   If you are running only one node,
  4872.     the only required change is parameter  162 (network environment).  Set this
  4873.     to DESQview.  If you are running multiple nodes, consult appendix G for the
  4874.     parameters that should be set to properly configure multiple nodes.
  4875.  
  4876.     4. DESQview Setup Default Settings
  4877.     -----------------------------------
  4878.     The next step  in configuring DESQview for  use with RBBS-PC is  specifying
  4879.     the  default settings for DESQview.  DESQview  has a setup program that may
  4880.     be invoked  at the DOS  prompt.   Enter SETUP  to run  this DESQview  setup
  4881.     routine. After the SETUP program loads, press RETURN for the Advanced Setup
  4882.     Procedure  followed by a "P" for Performance  defaults.  Here is an example
  4883.     of the recommended settings:
  4884.  
  4885.     ------------------------------------------
  4886.     I  Task Processing Time (in Clock Ticks) I  Optimum Fore/Backgrnd can vary
  4887.     I            Foreground:    9            I  between 15/14 and 4/3.  These
  4888.     I            Background:    8            I  settings will vary depending on
  4889.     I                                        I  CPU speed and number of nodes
  4890.     I  Memory Usage (in K)                   I  in operation.  Experiment with
  4891.     I      Common Memory:      24            I  different settings to find the
  4892.     I      DOS Buffer for EMS:  2            I  best for your system.
  4893.     I                                        I
  4894.     I  Optimize communications?    (Y/N): N  I  Select [Y] if you're operating
  4895.     I  Allow swapping of programs? (Y/N): Y  I  only 1-node under DESQview!
  4896.     I  Manage printer contention?  (Y/N): N  I
  4897.     I                                        I
  4898.     I           Next field     Tab           I
  4899.     I           Backup menu    Esc           I
  4900.     I           DONE           <─┘           I
  4901.     I                                        I
  4902.     ------------------------------------------
  4903.  
  4904.     NEVER  indicate more  clock ticks  for Background  processing than  you are
  4905.     using for the Foreground processing.   DESQview will automatically increase
  4906.     the  amount of Background  clock ticks whenever there  is little demand for
  4907.     Foreground processing.   This will be the case when  running RBBS-PC in the
  4908.     background and doing word  processing or a similar task  in the foreground.
  4909.     This feature cannot function properly if the Background clock ticks are set
  4910.     higher  than the  Foreground  clock ticks.   Setting  the  High Speed  Comm
  4911.     default  to YES will  make communications interrupts  the highest priority.
  4912.     While this is suggested if you operate a single node, you should specify NO
  4913.     for optimum performance when operating multiple nodes.
  4914.  
  4915.  
  4916.  
  4917.     APPENDIX I -- RBBS-PC in a DESQview Environment                         I-3
  4918.  
  4919.  
  4920.     5. Adding RBBS-PC to DESQview's  "Open Window" Menu
  4921.     ---------------------------------------------------
  4922.     Refer to the section "Adding Your Own Program" in the DESQview manual.  You
  4923.     will need to "Add a Program" for each node of RBBS-PC you intend to operate
  4924.     on your system.   You may name the programs N1, N2, etc.   N1 will load the
  4925.     batch file START.BAT  with the Parameter "1".  N2  will load START.BAT with
  4926.     the Parameter "2" and so  on.  Use the following settings for each node (or
  4927.     copy) of RBBS-PC you install.
  4928.  
  4929.                                    Add a Program
  4930.     --------------------------------------------------------------------------
  4931.      Program Name............: [NODE-1]
  4932.  
  4933.      Keys to Use on Open Menu: N1                   Memory Size (in K): 380
  4934.  
  4935.      Program...: START                  Please note that Memory Size above may
  4936.                                         need to be increased if you intend to
  4937.      Parameters: 1  (node number)       SHELL (rather than DOOR) to External
  4938.                                         file transfer protocols.
  4939.      Directory.: C:\RBBS
  4940.  
  4941.      Options:
  4942.                     Writes text directly to screen.......: [N]
  4943.                     Displays graphics information........: [N]
  4944.                     Virtualize text/graphics (Y,N,T).....: [N]
  4945.                     Uses serial ports (Y,N,1,2)..........: [Y] <-N if Using a
  4946.                     Requires floppy diskette.............: [N]   FOSSIL driver
  4947.     --------------------------------------------------------------------------
  4948.  
  4949.     Next, press F1 for the Advanced Options menu.
  4950.  
  4951.                           Change a Program Advanced Options
  4952.     --------------------------------------------------------------------------
  4953.     System Memory (in K).......:   0   Maximum Program Memory Size (in K)..:
  4954.  
  4955.     Script Buffer Size.......:     1   Maximum Expanded Memory Size (in K):
  4956.  
  4957.     Text Pages: 1  Graphics Pages: 0   Initial Mode:      Interrupts: 00 to FF
  4958.  
  4959.     Window Position:
  4960.        Maximum Height:  25       Starting Height:           Starting Row...:
  4961.        Maximum Width.:  80       Starting Width.:           Starting Column:
  4962.  
  4963.                                    Shared Program
  4964.     Pathname..:
  4965.     Data......:
  4966.  
  4967.     Close on exit (Y,N,blank)......: [N]  Uses its own colors............: [Y]
  4968.     Allow Close Window command.....: [Y]  Runs in background (Y,N,blank).: [Y]
  4969.     Uses math coprocessor..........: [N]  Keyboard conflict (0-4)........: [0]
  4970.     Share CPU when foreground......: [Y]  Share EGA when foregrnd/zoomed.: [Y]
  4971.     Can be swapped out (Y,N,blank).: [N]  Protection level (0-3).........: [0]
  4972.     --------------------------------------------------------------------------
  4973.  
  4974.     6. Memory Considerations
  4975.     ------------------------
  4976.     Please refer to your  DESQview documentation for information regarding  the
  4977.     use of XDV.COM and optimizing  the size for each DESQview window.   Current
  4978.     versions  of DESQview require a little under  180k of your system's memory,
  4979.  
  4980.  
  4981.  
  4982.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     I-4
  4983.  
  4984.  
  4985.     leaving only  430k to  operate RBBS-PC on  a system  with 640k.   Specify a
  4986.     minimum window size of  380k for RBBS-PC.   If you choose to SHELL  (rather
  4987.     than DOOR) to external protocol  drivers for file transfers, you  will have
  4988.     to increase this window size.
  4989.  
  4990.     It  is necessary to use EEMS memory to run two or more concurrent copies of
  4991.     RBBS-PC under DESQview.  If  available EEMS memory allows, you may  wish to
  4992.     add an additional  "LOCAL" node for  SysOp use.   When using an  additional
  4993.     node for  SysOp duties,  an additional modem  and RS-232 interface  are not
  4994.     required.  Simply use CONFIG to set up  the .DEF file for the node you  are
  4995.     planning to use for SysOp duties.  You must specify the communications port
  4996.     as COM0.  Failure to do so will prevent your local  SysOp node from loading
  4997.     properly.
  4998.  
  4999.     7. Expanded Memory
  5000.     ------------------
  5001.     If you are using  an "Expanded Memory" board that allows more  than 640k to
  5002.     be used for programs, the constraints discussed in the previous section may
  5003.     not apply.   Specify a  window size of  460K for each node of   RBBS-PC and
  5004.     invoke  the  external protocol  drivers by  SHELLing.   For  information on
  5005.     running programs in expanded memory, refer  to the manuals for DESQview and
  5006.     your particular memory board.
  5007.  
  5008.     8. How to AUTOEXEC RBBS-PC From DESQview
  5009.     ----------------------------------------
  5010.     Refer to the  section "LEARN:  DESQview's Keystroke Macro  Feature" in  the
  5011.     DESQview manual.  A script assigned to the ! key (on the DESQview menu) has
  5012.     a  special meaning.   It is performed  at the  time you start  up DESQview,
  5013.     immediately  after the  DESQview menu appears.   This  is called  a STARTUP
  5014.     SCRIPT.   You should "Learn"  the Startup Script  with no windows  open and
  5015.     with  the DESQview menu  displayed to be  sure it will  play back properly.
  5016.     Use this particular  script to load N1,  N2, etc. of RBBS-PC.   If you load
  5017.     DESQview  from your  AUTOEXEC.BAT  file, RBBS-PC  will  load from  DESQview
  5018.     automatically. This can be handy  if there is a power outage  while you are
  5019.     away and no one is around to re-load RBBS-PC when  the electricity returns.
  5020.     You should open the window(s) for  RBBS-PC prior to opening windows for any
  5021.     other application software.
  5022.  
  5023.     9. Quarterdeck Utilities
  5024.     ------------------------
  5025.     Two Quarterdeck utilities, STDERR.COM and LDFILTER.COM are distributed with
  5026.     RBBS-PC.    LDFILTER.COM should  be  executed  when you  open  a window  in
  5027.     DESQview.  If you use the  Small & Fast version of RBBS-PC, or  you compile
  5028.     RBBS-PC with QuickBASIC v2.01,  you should use LDFILTER.COM.  In  the above
  5029.     examples, LDFILTER would be placed into the START.BAT batch file.  LDFILTER
  5030.     was  written by  Quarterdeck Office  Systems to  compensate for  the memory
  5031.     mismanagement of the BASIC compilers.  If you try to "SHELL" to an external
  5032.     routine the error  "not enough  memory to SHELL"  is issued.   LDFILTER.COM
  5033.     prevents this error condition by preventing the code generated by the BASIC
  5034.     compilers from mis-managing memory.
  5035.  
  5036.     STDERR.COM should be executed from your autoexec.bat file, prior to loading
  5037.     DESQview.  STDERR was  written by Quarterdeck Office Systems  to compensate
  5038.     DOS' inability  to redirect the  standard error  output to the  same device
  5039.     that the standard output device had been redirected to.  If you are running
  5040.     something  remotely and an error occurs,  STDERR.COM allows the error to be
  5041.     displayed at the remote user's end and not simply on the PC that is running
  5042.     RBBS-PC under DESQview.
  5043.  
  5044.  
  5045.  
  5046.     APPENDIX I -- RBBS-PC in a DESQview Environment                         I-5
  5047.  
  5048.  
  5049.     10. Redirecting I/O Considerations (DOS CTTY Command)
  5050.     -----------------------------------------------------
  5051.     The DOS CTTY  command is NOT supported under DESQview.   The GATEWAY device
  5052.     driver  version 2.0, by Hans D. Kellner, provides an excellent alternative.
  5053.     This device driver is available on  many bulletin boards under the filename
  5054.     GATEWAY2.ZIP.
  5055.  
  5056.     Since  the DOS CTTY command is not  supported within a DESQview window, you
  5057.     may use GATEWAY2 to  allow redirection of I/O.   This will allow the  SysOp
  5058.     Function 7 (drop to DOS)  to function properly!  It will also allow RBBS-PC
  5059.     DOORS to function that rely on the CTTY command.
  5060.  
  5061.     Instructions for installing GATEWAY2 with RBBS-PC.
  5062.  
  5063.        1) Place the file 'GATEWAY2.SYS' in your boot disk root directory.
  5064.        2) Add the following lines to your 'CONFIG.SYS' file:
  5065.  
  5066.           DEVICE=GATEWAY2.SYS -D -1  <-- for node-1 using COM1
  5067.           DEVICE=GATEWAY2.SYS -D -2  <-- for node-2 using COM2
  5068.  
  5069.          (note) You must change the [-d] parameter to [-f] if you are using a
  5070.                 FOSSIL driver (described later in this appendix).
  5071.  
  5072.       3) Run the RBBS-PC  CONFIG.EXE program  for each node  of RBBS-PC  you're
  5073.          using.   Select parameter 106,  and specify  that you do  NOT want  to
  5074.          redirect via CTTY.  CONFIG will then ask if you wish to redirect via a
  5075.          device driver.  Enter "Y", and then enter GATE2 as the device name.
  5076.  
  5077.     The use of GATEWAY2 has an  added benefit for those SysOps who  provide the
  5078.     PC-SIG  collection of  files on  CD-ROM.   When  a user  A)rchives a  disk,
  5079.     RBBS-PC  will use Gateway to  redirect the archive  activity (normally seen
  5080.     only on the SysOp's screen) to the remote user.  This will allow the caller
  5081.     to see the PC-SIG disk being archived!
  5082.  
  5083.     11. FOSSIL Drivers - Break the 2-node Barrier under DESQview!
  5084.     -------------------------------------------------------------
  5085.     The BASIC language can only support COM1 and COM2, and when either of these
  5086.     are selected  and you specify that you will not be using a "FOSSIL" driver,
  5087.     RBBS-PC will use  the built-in BASIC support for remote  access (i.e. via a
  5088.     communications port and  a modem).    However, RBBS-PC will  interface with
  5089.     "FOSSIL" drivers that support not only COM1 and COM2 but  also COM3 through
  5090.     COM8.  If  you use parameter 221 to indicate that RBBS-PC is to  access the
  5091.     communication port via a FOSSIL driver, the FOSSIL interface (FOSSCOMM.OBJ)
  5092.     written by Daan Van der Weide will be used.  FOSSCOMM is already built into
  5093.     RBBS-PC, so it will be active as soon as you select it.  In a multi-tasking
  5094.     environment  such  as   DESQview  up  to  8  copies   of  RBBS-PC  can  run
  5095.     simultaneously  accessing COM1  to  COM8, respectively,  using Ray  Gwinn's
  5096.     X00.SYS device driver.    Ray can be reached  via FidoNet (109/639) or  the
  5097.     RENEX bulletin  board at (703) 494-8331 or (703) 690-7950.  X00.SYS is also
  5098.     available on many BBSs.
  5099.  
  5100.     When using FOSSIL support, you will select CONFIG parameter 221.  After you
  5101.     specify  a communications  port, CONFIG  will ask  if it should  use FOSSIL
  5102.     support.   Answer YES, and then  enter the base  comm port address  for the
  5103.     port.  See the chart later  in this section for common base  port settings.
  5104.     If  you choose  to implement  a fossil  driver, you'll  want to  change the
  5105.     following parameter for each DESQview window:
  5106.  
  5107.        Options:
  5108.  
  5109.  
  5110.  
  5111.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     I-6
  5112.  
  5113.  
  5114.                 Uses serial ports (Y,N,1,2)..........: [N]   <--Set to NO
  5115.  
  5116.     If the fossil  is handling  communications, you should  tell DESQview  that
  5117.     RBBS-PC is NOT using  serial ports.  That way, only the  fossil is handling
  5118.     the communications for each port.
  5119.  
  5120.     In the following text, we  will attempt to give you some  basic information
  5121.     regarding the use  of X00.SYS  with RBBS-PC.   For additional  information,
  5122.     please refer to the documentation provided with the X00.SYS fossil driver.
  5123.  
  5124.     There are several  approaches that can be  taken to implement serial  ports
  5125.     with Ray Gwinn's X00.SYS.  THE  FIRST APPROACH involves the use of separate
  5126.     base I/O  addresses and separate  IRQs for each serial  port.  This  is the
  5127.     method  we  use on  our  BBS to  provide  4-ports on  a  single 80386-based
  5128.     computer.  We use the following configuration:
  5129.  
  5130.        Card #1   COM1   IRQ4   3F8h  (standard IRQ, standard base I/O)
  5131.        Card #1   COM2   IRQ3   2F8h  (standard IRQ, standard base I/O)
  5132.        Card #2   COM3   IRQ7   3E8h  (non-standard IRQ, standard base I/O)
  5133.        Card #2   COM4   IRQ5   2E8h  (non-standard IRQ, standard base I/O)
  5134.  
  5135.     We use serial ports with  the NS16550AFN UART chips.  This  particular chip
  5136.     is recommended  if you intend  to use 9600-bps  modems with  multiple nodes
  5137.     under DESQview.
  5138.  
  5139.     Here is  a sample CONFIG.SYS line  that activates X00.SYS.   In addition to
  5140.     specifying the  IRQs and  base I/O for  each port,  each port is  locked to
  5141.     19,200 bps.  High speed modems, or ones that use data compression will gain
  5142.     throughput if the port speed is  locked.  This is not necessary if  you are
  5143.     using a  standard Hayes-compatible  2400-bps modem.    This entry  is on  a
  5144.     single line but appears as two lines below.
  5145.  
  5146.      DEVICE=C:\X00.SYS E T=2048 R=2048 0=3F8,IRQ4 1=2F8,IRQ3 2=3E8,IRQ7 3=2E8,
  5147.      IRQ5 B,0,19200 B,1,19200 B,2,19200 B,3,19200
  5148.  
  5149.     We have also configured GATEWAY2  (discussed earlier in this text)  to make
  5150.     use of the fossil driver.  The lines in CONFIG.SYS would be:
  5151.  
  5152.        DEVICE=C:\GATEWAY2.SYS -F -1  (gateway for COM1)
  5153.        DEVICE=C:\GATEWAY2.SYS -F -2  (gateway for COM2)
  5154.        DEVICE=C:\GATEWAY2.SYS -F -3  (gateway for COM3)
  5155.        DEVICE=C:\GATEWAY2.SYS -F -4  (gateway for COM4)
  5156.  
  5157.     THE SECOND APPROACH also  involves the use of a separate  base I/O for each
  5158.     port, but  IRQs are "shared".   Recent versions of X00.SYS  will manage the
  5159.     use of a "Shared" IRQ.  For example, COM1 and COM2 on the first serial card
  5160.     share IRQ4.   COM3 and COM4  on the second serial  card share IRQ3.   Under
  5161.     this arrangement each port sharing an IRQ must be located on the SAME CARD.
  5162.     This  requirement  is not  due  to  X00.SYS  but  is, instead,  a  hardware
  5163.     restriction; IRQs cannot be shared between boards.
  5164.  
  5165.     In both the above examples, NON-intelligent serial cards are used.  RBBS-PC
  5166.     will NOT support the many "Intelligent" multi-port I/O cards on the market.
  5167.     These "Intelligent" boards are popular in other environments (such as UNIX)
  5168.     but they  provide  a datastream  into  the host  using  a single  base  I/O
  5169.     address.   RBBS-PC must receive  its communications at a  separate base I/O
  5170.     for each port.
  5171.  
  5172.  
  5173.  
  5174.     APPENDIX I -- RBBS-PC in a DESQview Environment                         I-7
  5175.  
  5176.  
  5177.     Here's a  chart of generally accepted  IRQs and base I/O  addresses for the
  5178.     standard PC/AT and PS/2.  Although these are the common settings, they vary
  5179.     (and we stress VARY) according to serial card manufacturer.
  5180.  
  5181.                Standard AT BUS                    Microchannel (PS/2) BUS
  5182.     ------------------------------------------------------------------------
  5183.          PORT      BASE I/O      IRQ            PORT      BASE I/O      IRQ
  5184.     ------------------------------------------------------------------------
  5185.          COM1       3F8h        IRQ4            COM1       3F8h        IRQ4
  5186.          COM2       2F8h        IRQ3            COM2       2F8h        IRQ3
  5187.          COM3       3E8h        IRQ4            COM3       3220h       IRQ3
  5188.          COM4       2E8h        IRQ3            COM4       3228h       IRQ3
  5189.          COM5       3F8h        IRQ4            COM5       4220h       IRQ3
  5190.          COM6       2F8h        IRQ3            COM6       4228h       IRQ3
  5191.          COM7       3E8h        IRQ4            COM7       5220h       IRQ3
  5192.          COM8       2E8h        IRQ3            COM8       5228h       IRQ3
  5193.     ------------------------------------------------------------------------
  5194.  
  5195.     If you  intend to duplicate  the 4-node configuration  as in the  preceding
  5196.     example, you will need to  find a serial card that will let  you choose any
  5197.     IRQ from IRQ3 to IRQ7 for each port (1 through 4).
  5198.  
  5199.     In closing, there are also some important issues to  consider when choosing
  5200.     to go beyond two ports on a single computer.  These include:
  5201.  
  5202.     1)   EXTERNAL  PROTOCOL SUPPORT.  The  external protocol drivers you choose
  5203.          must let you  either define the IRQ for the  additional ports, or they
  5204.          just  rely on the  fossil driver for  their communications.   In other
  5205.          words, they must have support for fossil drivers.  Some protocols scan
  5206.          a port for I/O without using an IRQ.  These will probably work  if you
  5207.          use standard base I/O addresses for your additional ports.
  5208.  
  5209.      2)  CPU SPEED LIMITATIONS.  Here's a chart indicating  recommendations for
  5210.          each computer type, amount of EEMS memory and number of nodes.
  5211.  
  5212.                                --- PERFORMANCE ---
  5213.  
  5214.       HOST            1-Node  2-Nodes 3-Nodes  4-Nodes 5-Nodes  6-Nodes 7-Nodes
  5215.     8-Nodes
  5216.     COMPUTER       640k   1.4Mb   2.0Mb   2.6Mb   3.2Mb   3.8Mb   4.4Mb   5.0Mb
  5217.     ------------------------------------------------------------------------
  5218.     PC 4.77-MHz     A2     C3      F5      F5      F5      F5      F5      F5
  5219.     PC 8-12-MHz     A1     B2      D5      F5      F5      F5      F5      F5
  5220.     AT 8-12-MHz     A1     B2      C4      D5      F5      F5      F5      F5
  5221.     AT 16-20-MHz    A1     A1      B3      C3      D5      D5      F5      F5
  5222.     80386/SX        A1     A1      A2      B2      C4      C4      D5      D5
  5223.     80386/16-MHz    A1     A1      A2      A2      B3      B3      C4      C4
  5224.     80386/25-MHz    A1     A1      A2      A2      B3      B3      C3      C3
  5225.     80386/33-MHz    A1     A1      A1      A2      B3      B3      B3      B3
  5226.     --------------------------------------------------------------------------
  5227.                       A=EXCELLENT at 2400-bps    1=EXCELLENT at 9600-bps
  5228.                       B=GOOD at 2400-bps         2=GOOD at 9600-bps
  5229.                       C=MARGINAL at 2400-bps     3=MARGINAL at 9600-bps
  5230.                       D=POOR at 2400-bps         4=POOR at 9600-bps
  5231.                       F=Not Recommended          5=Not Recommended at 9600-bps
  5232.     --------------------------------------------------------------------------
  5233.     Your results may vary due to specific hardware differences.
  5234.  
  5235.     If you plan to support BPS rates of 9600 or above on one or more nodes, we
  5236.  
  5237.  
  5238.  
  5239.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     I-8
  5240.  
  5241.  
  5242.     recommend the use of NS16550AFN UART chips.  These chips are necessary for
  5243.     acceptable Zmodem (DSZ) performance under DESQview.
  5244.  
  5245.     12. RBBS-PC Technical Support For DESQview
  5246.     ------------------------------------------
  5247.     If  you would like additional  information about DESQview  and RBBS-PC, you
  5248.     may contact the following RBBS-PC system:
  5249.  
  5250.          Indiana On-Line (tm)
  5251.          John L. Taylor, SysOp
  5252.          (812) 332-RBBS  (3/12/24/96/14.4KBPS)
  5253.  
  5254.  
  5255.  
  5256.     APPENDIX J -- Using RBBS-PC with DoubleDOS                              J-1
  5257.  
  5258.  
  5259.     APPENDIX J -- Using RBBS-PC with DoubleDOS
  5260.     ------------------------------------------
  5261.     Two nodes of RBBS-PC can be  operated on one 640K PC/XT/AT under DoubleDOS.
  5262.     First, make sure DoubleDOS and  RBBS-PC, individually, operate correctly on
  5263.     your computer.   Then, the DDCONFIG.SYS  file can be changed  to facilitate
  5264.     operation of RBBS.  SoftLogic Solutions, the DoubleDOS supplier, operates a
  5265.     customer  service BBS  at  603-644-5556 and  can  often help  with  special
  5266.     problems.  (An example:  DoubleDos version 4.0 must be  modified with their
  5267.     special patch in  order to operate on machines using EEMS memory controlled
  5268.     by AST's REMM.SYS driver.)
  5269.  
  5270.     DoubleDOS even  has a special  interrupt that RBBS-PC calls  to "give back"
  5271.     unused time to the foreground job when  it really doesn't need the time, so
  5272.     that during periods of low communications activity, the foreground job runs
  5273.     at essentially 100% of  the machine's speed.  GIVEBACK is incorporated into
  5274.     releases 16.1A (and greater) of RBBS-PC.
  5275.  
  5276.     The  DOS  (3.1 or  greater)  utility SHARE  should  be run  before starting
  5277.     DoubleDOS to provide for file locking.
  5278.  
  5279.  
  5280.     RBBS-PC,  due  to the  code  generated by  the BASIC  compiler,  requires a
  5281.     considerable  amount of memory.  If insufficient memory is available, RBBS-
  5282.     PC may fail to load, may report a string corrupt error, may hang, or, worst
  5283.     of all,  may appear to start  and operate normally  only to fail later.   A
  5284.     (partial) test of whether enough memory is available is to note the DS free
  5285.     space in the SysOp initial menu  when operating under DoubleDOS compared to
  5286.     naked  DOS; any reduction  in this reported free  space may indicate memory
  5287.     shortage.   The best approach, unfortunately, is  to start with more memory
  5288.     than necessary,  get your system going  reliably, and then do  a crude cut-
  5289.     and-try process of reducing  memory until problems first appear;  then back
  5290.     off up to an again-reliable memory setting.
  5291.  
  5292.  
  5293.     Terminate-and-stay-resident programs (e.g.  ramdisks, print spoolers,  Side
  5294.     Kick) will  reduce the memory available  to RBBS-PC.   Buffers specified in
  5295.     the CONFIG.SYS file also reduce available memory.  Some versions of DOS are
  5296.     smaller than others; every little bit of memory helps.   Large programs may
  5297.     not  run in the  second DoubleDos memory section  after starting RBBS-PC in
  5298.     the first.
  5299.  
  5300.     Because of these memory considerations, SHELLing to DOORS and external file
  5301.     transfer protocols  will not be possible.  If these features of RBBS-PC are
  5302.     used, they will need to be invoked by EXITing to them.
  5303.  
  5304.     The BASIC compiler version  used determines the amount of  memory required.
  5305.     Two  nodes  of  RBBS(version  16.1A),  have  been  demonstrated  to operate
  5306.     successfully  under DoubleDOS when compiled with Quick Basic 1.02 and RBBS-
  5307.     PC's  memory requirements  reduced (see  Appendix U).   When  compiled with
  5308.     Quick Basic 2.x, 3.x or  4.x, two nodes will  not fit under DoubleDOS.   To
  5309.     save memory, expert  SysOps who  are adept at  compiling/linking their  own
  5310.     custom  versions of RBBS-PC, can selectively (and at their own risk) delete
  5311.     from  the source  code sections that  they do  not require.   Such personal
  5312.     versions should  not be circulated to  others.  If  this is done,  the more
  5313.     recent compilers may produce code compact enough for 2 nodes.
  5314.  
  5315.     DoubleDOS  has  several  parameters  that can  improve  RBBS-PC  operation.
  5316.     Sample:
  5317.          menu = short                    ;the long menu requires more memory
  5318.  
  5319.  
  5320.  
  5321.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     J-2
  5322.  
  5323.  
  5324.          display = text                  ;to not reserve graphics buffer
  5325.          print driver = direct           ;use direct drive, no buffer reserved
  5326.          bottom size = half              ;split memory for two RBBS-PC nodes
  5327.          priority = equal                ;both nodes run at same speed
  5328.  
  5329.     The next items may be desirable  to provide protection, in case any program
  5330.     in the other memory section  should try to use a COM port assigned to RBBS-
  5331.     PC.
  5332.            com1  = top                               ;obviously  these two port
  5333.     assignments
  5334.            com2 = bottom                   ;could be reversed
  5335.  
  5336.     Possible circumstances that might warrant this protection:
  5337.  
  5338.     1.SysOp makes a COM  port assignment error in  the .DEF file for the  other
  5339.     node.
  5340.     2.one node  is temporarily shut down  by the SysOp to  run another program.
  5341.     Some  programs  (e.g. some  versions of  BASIC)  initialize both  COM ports
  5342.     (clobbering RBBS-PC) when started.
  5343.  
  5344.     Warning:  this  protection is known to be unusable  on some machines (e.g.,
  5345.     works fine on IBM-PC 8088, does not work on  AST Premium 286 or TATUNG 4000
  5346.     AT).
  5347.  
  5348.     It is  convenient (and safer, to prevent keystroke errors) to automate your
  5349.     startup.  In your  AUTOEXEC.BAT file you should  initiate DOUBLEDOS as  the
  5350.     last item.   It will then  start, using the DDCONFIG.SYS  file for detailed
  5351.     RBBS-PC  instructions.    Sample  DDCONFIG.SYS  contents  (this  will  vary
  5352.     according to your exact setup):
  5353.  
  5354.          top program = prompt TOP $p$g
  5355.          top program = go
  5356.          bottom program = prompt BOT $p$g
  5357.          bottom program = go
  5358.  
  5359.     Note that  the change in prompt  allows a single batch  file, GO.BAT, which
  5360.     has the  single statement  of GO%PROMPT%,  to execute  the correct node  of
  5361.     RBBS-PC in  either node.  Nothing is more embarrassing than to start a node
  5362.     that is already operating.  All that need be typed is GO<RETURN> and either
  5363.     GOTOP  or GOBOT will  be executed.   (Actually the GO  batch file execution
  5364.     looks  like "TOP  C:\DDOS>GOTOP $p$g".   The $p$g  is ignored.)   GOTOP.BAT
  5365.     might then look like this:
  5366.         C:
  5367.         CD\RBBS
  5368.         RBBS1
  5369.  
  5370.     RBBS1.BAT would  then be  the  first node  RBBS.BAT  as discussed  in  this
  5371.     document.  Similarly, GOBOT would start RBBS2.BAT for the second node.
  5372.  
  5373.     Stan Staten, RBBS-PC number (301) 670-9621
  5374.     Kurt Riegel, RBBS-PC number (202) 524-1837)
  5375.  
  5376.  
  5377.  
  5378.     APPENDIX K -- RBBS-PC in a MultiLink Environment                        K-1
  5379.  
  5380.  
  5381.     APPENDIX K -- RBBS-PC in a MultiLink Environment
  5382.     ------------------------------------------------
  5383.     RBBS-PC only runs under Multilink versions 4.0, 3.02 and earlier.
  5384.  
  5385.     CONFIG's allows  the SysOp  to tell RBBS-PC  that it will  be running  in a
  5386.     MultiLink environment.    This  is  ESSENTIAL when  running  RBBS-PC  under
  5387.     MultiLink.  CONFIG allows the SysOp to specify what MultiLink terminal type
  5388.     code to pass to MultiLink whenever RBBS-PC exits to  DOS via a "Door".  The
  5389.     MultiLink  documentation specifies the various terminal type codes.  When a
  5390.     SysOp  indicates that "doors" are  available (via parameter  101 of CONFIG)
  5391.     and RBBS-PC is to be run under  MultiLink, the SysOp is asked to select the
  5392.     MultiLink terminal type that RBBS-PC is to inform MultiLink  to expect when
  5393.     MultiLink is given control of the "Door."
  5394.  
  5395.     RBBS-PC has  been tested running  two copies of  RBBS-PC under DOS  3.2 and
  5396.     MultiLink Advanced (versions 3.02 and 4.0) on an IBM PC which had a mother-
  5397.     board  containing 256K  and an AST  Comboplus board  with 384K  (a total of
  5398.     640K).  However,  to do this RBBS-PC must be  re-compiled (see Appendix U).
  5399.     The "autoexec"  file  was named  AUTOEXEC.BAT and  contained the  following
  5400.     parameters
  5401.  
  5402.                         MLINK /9,266/9,266
  5403.  
  5404.     NOTE!  ==>RBBS-PC must be recompiled with  C:512 in order to  run in a 268K
  5405.     partition  under  MultiLink.   As released,  RBBS-PC  is compiled  with the
  5406.     parameter C:4096 which requires  a MultiLink partition of 270K.  Of course,
  5407.     to SHELL to the external protocols, the partitions must be about 440K.
  5408.  
  5409.     It is important  to avoid doing  several things when running  RBBS-PC under
  5410.     MultiLink.   First, NEVER RUN MLSLICE!   This is because  MLSLICE hangs off
  5411.     the PC's timer chain and the code generated by the BASIC compilers violates
  5412.     all sorts  of DOS  conventions whenever  it is  utilizing the  PC's speaker
  5413.     (i.e. as when RBBS-PC pages the SysOp).  In so doing, the code generated by
  5414.     the  BASIC compilers  is  incompatible with  programs  that do  follow  DOS
  5415.     conventions.
  5416.  
  5417.     Second, NEVER use the DOS "PRINT" command!  This is because there is  a bug
  5418.     in the  code generated by the BASIC compiler that causes the system to hang
  5419.     if a compiled BASIC program is running and DOS is printing something.  This
  5420.     bug has  been corrected in  the BASIC  compiler that was  used to  generate
  5421.     RBBS-PC.EXE that is distributed.   However the version of  RBBS-PC that you
  5422.     get (if other than from CPCUG) may not have this bug corrected.  This  is a
  5423.     bug that occurs independent of running MultiLink.
  5424.  
  5425.     Third, check your Intel 8088 chip's  copyright date by opening up the cover
  5426.     and locating the  8088 chip. If the  copyright date printed on the  chip is
  5427.     1978 (i.e. pre 1981), REPLACE THE INTEL 8088 CHIP!!!!!  The 1978 Intel 8088
  5428.     chip  had several  design flaws  that  will cause  your system  to lock  up
  5429.     occasionally.  One of these design  flaws allowed interrupts to occur while
  5430.     stack  switching (something  that will  happen running  multiple partitions
  5431.     doing disk I/O under any multi-tasking DOS add-on such as MultiLink or even
  5432.     IBM's TopView).   Don't blame MultiLink for the flawed Intel 8088 chip that
  5433.     IBM put  in your  PC!  It  costs about $70  ($35 for  the chip and  $35 for
  5434.     labor)  and  takes about  15  minutes  to have  the  1978  Intel 8088  chip
  5435.     replaced.   In fact, if you are going to replace your 1978 Intel 8088 chip,
  5436.     you might consider the newer (and 5% to 10% faster) NEC V20 chip.
  5437.  
  5438.     Fourth, DON'T USE  "BUFFERS=" in the  CONFIG.SYS for DOS!   This may be  an
  5439.     "old  wives tale,"  but I  am convinced  (but can't  prove) that  there are
  5440.  
  5441.  
  5442.  
  5443.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     K-2
  5444.  
  5445.  
  5446.     incompatibilities between the code the BASIC compiler  generates, DOS's use
  5447.     of "BUFFERS=", and MultiLink.
  5448.  
  5449.     fifth, RBBS-PC will only run in Background 1 or Background 2.
  5450.  
  5451.     Finally,  DON'T RUN  PROGRAMS THAT  USE THE  BASIC "RUN-TIME"  LIBRARY, and
  5452.     always invoke  the BASIC interpreter with the  command BASIC /C:0! Both the
  5453.     BASIC interpreter's handling of communications ports and BASRUN.EXE seem to
  5454.     violate enough DOS conventions to "lock up" MultiLink.
  5455.  
  5456.     When  RBBS-PC is  told that it  is running  in a  MultiLink environment via
  5457.     CONFIG parameter 162, RBBS-PC will automatically do the following:
  5458.  
  5459.       1) When  re-cycling,  it  will   automatically  enqueue  on  the  correct
  5460.          MultiLink resource  ID for the  communications port defined  in CONFIG
  5461.          for that copy of RBBS-PC to use.
  5462.       2) When re-cycling, it will  automatically tell MultiLink that this  is a
  5463.          type "9" partition (i.e. MultiLink is NOT to handle the communications
  5464.          port).
  5465.       3) When exiting to  DOS via a "door",  RBBS-PC will automatically
  5466.          tell MultiLink to start  handling the communications  for this
  5467.          partition (COM1 or COM2)  and what type of terminal was defined
  5468.          in CONFIG that would  be on the communications port  (MultiLink
  5469.          terminal types 1 through 12).
  5470.  
  5471.     Manually, it  is possible  to bring up  and run one  copy of  RBBS-PC under
  5472.     MultiLink.  The only  way that I have been  able to bring up two  copies of
  5473.     RBBS-PC  successfully (one copy  running in each of  two partitions) was to
  5474.     bring them up  via AUTOEXE1.BAT and  AUTOEXE2.BAT files.   It appears  that
  5475.     during the  MultiLink initialization sequence when the partitions are being
  5476.     established and the  "AUTOEXEx.BAT" files are being  invoked that MultiLink
  5477.     doesn't get "confused" and lock up with a second copy of  RBBS-PC present.
  5478.  
  5479.     If using  Multi-Link to   run multiple  nodes in   the same  machine  under
  5480.     DOS 3.x or above, it is recommended that the SysOp  execute SHARE.COM prior
  5481.     to starting multiple RBBS-PC nodes under Multi-Link and specify FILES=20 in
  5482.     the CONFIG.SYS file.
  5483.  
  5484.  
  5485.  
  5486.     APPENDIX L -- RBBS-PC in a CORVUS Network                               L-1
  5487.  
  5488.  
  5489.     APPENDIX L -- RBBS-PC in a CORVUS Network
  5490.     -----------------------------------------
  5491.     RBBS-PC  uses  the  standard Corvus  SEMAPHORES  when  sharing  files among
  5492.     multiple  copies of RBBS-PC within a Corvus  Network.  This is accomplished
  5493.     via  the  MS-DOS utility  driver, DRIVEC2,  that  Corvus supplies  with its
  5494.     network.
  5495.  
  5496.     On a multi-server Corvus network (i.e. where there are multiple shared hard
  5497.     disk drives) all  PC's that are running  RBBS-PC within the  Corvus network
  5498.     MUST have  their "home volume" on  the same server.   Corvus maintains each
  5499.     PC's  semaphores on  that PC's "home  volume".   In order  to "share" files
  5500.     among various  PC's in a  Corvus network, all  the PC's that  are "sharing"
  5501.     must also  be looking at  the same set of  semaphores.  In  a single-server
  5502.     Corvus network this is not a consideration because there is  only one "home
  5503.     volume."
  5504.  
  5505.     RBBS-PC has been  only tested  with the Corvus  CONSTELLATION II  interface
  5506.     cards and  software that Corvus  provides for the  IBM PC.   RBBS-PC should
  5507.     work with  both Corvus' older "flat  cable" network as well  as their newer
  5508.     OMNINET  twisted  wire pair  cable  network when  running  CONSTELLATION II
  5509.     software.   It  is  entirely possible  that RBBS-PC  would  work with  some
  5510.     combination  of  both Corvus  network types  as long  as they  were running
  5511.     CONSTELLATION II software.
  5512.  
  5513.     It  should be  self-evident that every  PC within a  Corvus network running
  5514.     RBBS-PC  must have a Corvus interface card.   If multiple copies of RBBS-PC
  5515.     are running in  a Corvus network that is using  older Corvus software (i.e.
  5516.     NOT  running the CONSTELLATION II  software), the interface  cards must, at
  5517.     least, all have the CONSTELLATION II ROM.
  5518.  
  5519.     RBBS-PC is tested only to run on IBM PC's within a Corvus network.  Clearly
  5520.     an IBM "clone"  that can run  IBM's DOS, RBBS-PC.EXE,  and is supported  by
  5521.     Corvus'  network should also work.  However, such configurations (and their
  5522.     many variations)  are not part  of the environment within  which RBBS-PC is
  5523.     tested and supported.
  5524.  
  5525.  
  5526.  
  5527.     APPENDIX M -- RBBS-PC in ORCHID or AST PCnet NETWORK                    M-1
  5528.  
  5529.  
  5530.     APPENDIX M -- RBBS-PC in ORCHID or AST PCnet NETWORK
  5531.     ----------------------------------------------------
  5532.     RBBS-PC  can  be  implemented  on an  Orchid  PCnet  or  AST PCnet  Network
  5533.     environment.   It  is  assumed  that  the  necessary  network  hardware  is
  5534.     installed  correctly.    The   following  discussion  describes  a  network
  5535.     currently in operation  and receiving more than 1000 calls  per week on two
  5536.     telephone  lines  for  the Computer  Connection  of  Virginia  Beach.   The
  5537.     hardware and software was:
  5538.     1.  80286 based SERVER with 512K running at up to 9 MHz with:
  5539.            Parallel-Serial Board on the AT with a serial port addressed as COM1
  5540.            AST Rampage memory board configured with 2 megs of expanded memory
  5541.            Monochrome Adapter with parallel printer port
  5542.            PC Net adapter addressed as 0080 with default jumpers
  5543.            Hard disk that can be divided into multiple volumes
  5544.            Single High Density [1.2 meg] floppy disk
  5545.            External modem and cable connected to COM1
  5546.     2.  8088 based WORKSTATION with 640K running at up to 8 MHz with:
  5547.           multifunction board with COM1, a clock, and parallel port
  5548.            PC Net adapter addressed as 0011 with default jumpers
  5549.            Color Graphics Adapter
  5550.            Two 360K floppy drives
  5551.            External modem and cable connected to COM1
  5552.     3. Software -
  5553.            Operating System = DOS 3.1 network-wide
  5554.            Network Software = Orchid PC Net 3.0a
  5555.            Disk Caching Software = Orchid CACHE.EXE version 2.2
  5556.            RAM Disk = AST FASTDISK
  5557.     Installation procedures ---
  5558.     1. Preliminaries
  5559.        1. Backup hard disk, system and network disks.
  5560.        2. If your hardware is different, be sure to resolve INTerrupt conflicts
  5561.     with  the PC NET adapters.  Disable second  serial or parallel ports in all
  5562.     PC's.
  5563.     2. Using the WORKSTATION, boot with DOS 3.1 then
  5564.        1. Create the  SERVER and WORKSTATION boot disks  with SPCGEN and UPCGEN
  5565.     commands, respectively.
  5566.        2. Copy  device drivers for  the hard  disk, for the  RAM disk, and  for
  5567.     Expanded and Extended memory (REMM.SYS and REX.SYS) to the SERVER boot disk
  5568.     as well as CACHE.EXE.  Place the following CONFIG.SYS file for the SERVER:
  5569.           device=spc.com                       <-- Network SERVER driver
  5570.           device=REMM.SYS                      <-- Expanded memory driver
  5571.           device=rex.sys 1024                  <-- 1MB Emulated extended memory
  5572.           device=fastdisk.sys 1024 512 128 /e  <-- RAM disk in extended memory
  5573.     3. Place the following commands in the AUTOEXEC.BAT file:
  5574.           disk13                        <-- Network for floppy disk use
  5575.           cache [drives] d=128  x=896 /r <-- 128K cache of DOS memory & 896K of
  5576.     EMS memory for SERVER drives to reduce the number of disk accesses
  5577.           spcbio 138023                 <-- Tell network of interrupts used
  5578.     4. Using the SERVER, boot with the newly created SERVER boot disk
  5579.        1. Run the network program SPCINST.
  5580.        2. After naming  all the available drives on the  server, assign all the
  5581.     hard drive volumes to the WORKSTATION # 11 and them all READ/WRITE capable.
  5582.     "Remote Execution" need not be enabled.
  5583.        3.  The SERVER  will then  reboot and  the network  will have  the final
  5584.     configuration as outlined above.
  5585.     5. Boot the WORKSTATION with the newly created WORKSTATION boot disk and:
  5586.        1. Add FILES = 16 to the CONFIG.SYS file for the WORKSTATION.
  5587.        2. Use the network program UPCINST to communicate with SERVER # 80.
  5588.        3. "Map" in all the drives that were assigned by the SERVER.
  5589.  
  5590.  
  5591.  
  5592.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     M-2
  5593.  
  5594.  
  5595.        4. The WORKSTATION will reboot so the changes can take effect.
  5596.        5. After the WORKSTATION reboots, do a DIR C: to see if the directory on
  5597.     the SERVER hard disk can  be read.  If  not, recheck cables, plug-in  cards
  5598.     for INTerrupt conflicts,  and network  adapter cards to  verify all  jumper
  5599.     settings.  If  necessary, run the SELFTEST and NETTEST  diagnostics for the
  5600.     network adapter cards.  Also, demonstrate the ability  to copy files across
  5601.     the network to  and from the server then verify the transfer using the COMP
  5602.     command.
  5603.     6. Assuming that you are able to do a DIR across the network and copy files
  5604.     to  and from the SERVER,  you are then ready  to run CONFIG.EXE of RBBS-PC.
  5605.     Run  CONFIG and confirm use of RBBS-PC  in a multinode environment.  Assign
  5606.     the number 1 Node to your SERVER.
  5607.     1. Assign  all welcome, bulletin, help  and menu files to  the SERVER's RAM
  5608.     drive so the workstation may access them in the fastest way.
  5609.     2. Store FILESEC, PASSWRDS,  MESSAGES, USERS and other sensitive files in a
  5610.     non-downloadable but sharable drive volume on the SERVER so the workstation
  5611.     may have read/write access to them.
  5612.     3. Select a location for the SERVER's CALLERS file and the WORKSTATION's.
  5613.     4. Reflect  the node numbers in  the BATch file names,  e.g. RCTTY1.BAT and
  5614.     RCTTY2.BAT, RBBS1.BAT and RBBS2.BAT.
  5615.     5. Choose PCNET as the environment that you are running RBBS-PC under.
  5616.  
  5617.     Other Considerations--
  5618.     VDISK or Extended memory, which is not-emulated memory, should not be  used
  5619.     on  the   SERVER  but  can  be  used  on  the  Workstation.    The  network
  5620.     configuration most likely to remain operating with very few problems is DOS
  5621.     3.1,  Orchid  3.0a  PC  NET  software and  CACHE.EXE  version  2.2  and  an
  5622.     Expanded/Extended  memory combination  using the  new Lotus/Intel/Microsoft
  5623.     EMS memory boards.
  5624.  
  5625.     Two nodes  can be efficiently set up using the SERVER in non-dedicated mode
  5626.     but the danger is  that if the SERVER locks up, the  whole system locks up.
  5627.     The sample PC Net system is set up in this fashion but it is  an economical
  5628.     approach to  a two node system  which has been functioning  quite well with
  5629.     minimal problems.  Do not run software on the SERVER that is known to cause
  5630.     problems  especially memory resident utilities.   There is  a potential for
  5631.     files being CROSS-LINKED in any read/write sharable  environment.  Frequent
  5632.     backups are to be very strongly recommended.
  5633.  
  5634.     Because  of  wide  variety of hardware combinations  and  possible  network
  5635.     permutations,  the  above  is  intended ONLY as general  guidelines  to  be
  5636.     followed when installing RBBS-PC on your Orchid network.
  5637.  
  5638.     Rob Cecchino
  5639.     SysOp, Computer Connection
  5640.     (804) 481-1824 at 1200/2400 for assistance.
  5641.  
  5642.  
  5643.  
  5644.     APPENDIX N -- RBBS-PC in an Alloy PC-SLAVE/16 Environment               N-1
  5645.  
  5646.  
  5647.     APPENDIX N -- RBBS-PC in an Alloy PC-SLAVE/16 Environment
  5648.     ---------------------------------------------------------
  5649.     The  PC-Slave  is  an   IBM  compatible  computer  on  an   expansion  card
  5650.     manufactured  by Alloy  Computer Products,  Inc. of  Framingham, MA  01701.
  5651.     Their telephone number is (617) 875-6100.  Adding PC-Slaves converts the PC
  5652.     from a single  CPU to a multiple CPU, all under  the control of the main or
  5653.     host PC.   Each slave can run RBBS-PC (or other programs).
  5654.  
  5655.     A. THE ADVANTAGES:  Compared to other means for running multiple RBBS-PC's,
  5656.     the advantages of slaves are:
  5657.  
  5658.     1. SPEED  -- Each copy  of RBBS-PC has  a dedicated computer  and therefore
  5659.     runs  very  fast  compared   to  multi-tasking  products  like  Multi-Link,
  5660.     DesqView, or DoubleDOS.
  5661.  
  5662.     2. SHARED FILES -- Each bulletin board can share files, including the users
  5663.     and messages.  The PC Slave system can act like Orchid's PC-Net network, or
  5664.     a NetBIOS LAN for record locking.
  5665.  
  5666.     3.EXPANDABILITY  -- You can have up to 31 slaves.  Adding an extra Slave is
  5667.     simple, and  does not  degrade system  performance.   The power  supply and
  5668.     cooling capacity of a PC-2 or XT limit you to adding only 2 slaves.  An  AT
  5669.     can have up  to four.  You can buy PC  compatibles that have more expansion
  5670.     slots.  You can also get an expansion chassis designed for up to 12 Slaves.
  5671.  
  5672.     4. COSTS -- It is far cheaper to expand using PC-Slave/16's than a network.
  5673.     The PC-Slave  lists for $900 and  can be purchased for  significantly less.
  5674.     Other networks require not  only a separate PC but also a "network" card of
  5675.     some sort which puts the costs of each port well above $2,000.
  5676.  
  5677.     5. DEDICATED PC IS NOT REQUIRED -- Your  PC can remain free for you to  use
  5678.     while  slaves run the bulletin boards (or  run another copy of the bulletin
  5679.     board).     You  do  not  degrade performance  on  the  slaves, except  for
  5680.     contention  for  the hard  disk and  that can  be  mitigated by  using disk
  5681.     caching.
  5682.  
  5683.     6. EASY  SNOOP.  Using  Alloy utilities  GIMME and VIEW,  you can view  the
  5684.     session on any  slave and attach your keyboard to it.  You can also install
  5685.     a dumb monitor to any slave.
  5686.  
  5687.     B. THE DISADVANTAGES:  The disadvantages of a slave system are:
  5688.  
  5689.     1. COMPATIBILITY --Not all hard disks are compatible with the slaves.  Hard
  5690.     disks known to be compatible include the Seagates, Priam 60 meg, Bernoulli,
  5691.     and Maxtor hard disks, as well as the Alloy line of hard disks.  Hard disks
  5692.     definitely not compatible include all models of US Design.
  5693.  
  5694.     C. OVERVIEW OF SETTING UP A PC-SLAVE/16 RBBS-PC:  Five easy steps on how to
  5695.     install RBBS-PC in a PC-Slave/16 environment (Note that the PC Slave system
  5696.     requires a special configuration for RBBS-PC):
  5697.  
  5698.     STEP 1  -- If  you want  to allow  simultaneous callers,  you will  have to
  5699.     purchase multiple  telephone lines.  They can be made  to roll so that only
  5700.     one number is  called, and if  busy, the call will  roll over to  the other
  5701.     lines.
  5702.  
  5703.     STEP 2 -- Install the slaves.  Remember to set switches on the slave boards
  5704.     that  number  them  consecutively.   See  the  PC-Slave  documentation  for
  5705.     details.
  5706.  
  5707.  
  5708.  
  5709.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     N-2
  5710.  
  5711.  
  5712.     STEP  3 -- Install  the software.   The Alloy PC-Slave  has to have special
  5713.     Alloy  software called NTNX to  coordinate the slaves  and process requests
  5714.     for shared resources.  See the NTNX documentation for details.
  5715.  
  5716.     STEP 4 -- Install a modem with  no pin 22.  Pin 22 used to be required with
  5717.     RBBS-PC  in order to  answer the phone.   On the  slaves, pin 22  CANNOT be
  5718.     connected,  or else  the slave  will continuously  reboot.   However, newer
  5719.     slaves support pin 22.
  5720.  
  5721.     STEP 5 -- Configure RBBS-PC using CONFIG.EXE with the following parameters:
  5722.          (a)  use COM2 (parameter 221)
  5723.          (b)   Via parameter 29 tell RBBS-PC it is running on an IBM compatible
  5724.     rather than a  PC, XT,  or AT.   (Lie and  tell RBBS-PC you  have a  Compaq
  5725.     Plus.)
  5726.          (c)   Use CONFIG parameter 161  to set the maximum  number of bulletin
  5727.     boards to as many boards as  you intend to install (rather than  the number
  5728.     you are currently running.  This makes expansion easier.).
  5729.          (d)  PC-Net  is the multi-user  environment you will be  running under
  5730.     and should indicate so via CONFIG parameter 162.
  5731.          (e)  Set up the RBBS-PC files.
  5732.  
  5733.     Read  Appendix G for general considerations on running a multi-node RBBS-PC
  5734.     system.  Since all PC-Slaves have access to all  hard drives, configuration
  5735.     of files is quite simple.
  5736.  
  5737.     Please  note that the NTNX software is  very vulnerable to any RAM resident
  5738.     software.   You  should  install the  Slaves  with no  additional  software
  5739.     present and carefully test any resident software you want to run with it.
  5740.  
  5741.     D. A DETAILED DESCRIPTION OF SETTING UP A PC-SLAVE 16 RBBS-PC:
  5742.  
  5743.     Hardware Limitations:
  5744.  
  5745.     1.  Two PC/Slave 16  cards per XT  box or four  in an AT  maximum otherwise
  5746.     you'll be buying power supplies frequently.  An expansion chassis for  four
  5747.     cards (Alloy  Plus4) or expansion  chassis for up  to twelve cards  will be
  5748.     needed for  bigger systems.  Expansions boxes can be daisy-chained to up to
  5749.     thirty one Nodes or workstations, if needed.
  5750.  
  5751.     2. PC/Slave 16 cards  do not support PIN 22 for Ring Detect.   If PIN 22 is
  5752.     connected, your slave will re-boot every time the phone rings!
  5753.  
  5754.     3. No clock on the PC/Slave 16 card.  The Slave gets the Time and date from
  5755.     the main system clock.  Each time you update the host clock, all the slaves
  5756.     will update as well.
  5757.  
  5758.     4. A terminal such as a Kimtron KT-7/PC or Alloy PCST is needed if you want
  5759.     to work on a  slave the same as you would on the  host computer (but not if
  5760.     you just  want to view activity  on slaves occasionally).   Other terminals
  5761.     will work but may not support all of the  IBM extended graphics codes.  For
  5762.     a multi-node RBBS-PC,  one terminal can  be used with an  A-B-C-D switching
  5763.     box to 'dial in' to the node you wish to work with.
  5764.  
  5765.     5. The Slaves' CPU  [NEC V20 @ 8 MHz]  shuts down when writing to  the hard
  5766.     disk.    This creates  problems  with timeout  errors on  uploads.   Upload
  5767.     problems can be eliminated by using the write buffer option in NTNX 1.64 or
  5768.     higher (/B). The problem can also be  alleviated by using a fast hard drive
  5769.     supported  by Alloy.  Also, the hard drive  must be formatted with the most
  5770.     efficient interleave setting  and driver.   Hard drives  that work  without
  5771.  
  5772.  
  5773.  
  5774.     APPENDIX N -- RBBS-PC in an Alloy PC-SLAVE/16 Environment               N-3
  5775.  
  5776.  
  5777.     significant  upload timeout errors  have been formatted  with either Golden
  5778.     Bow's  Vfeature  Deluxe or  Priam's  formatting software;  this  problem is
  5779.     especially noticeable on AT systems and not too much  of a problem on small
  5780.     XT  systems.  Seagate, Bernoulli Box, Maxtor,  and Priam Inner Space drives
  5781.     seem to work fine with the Alloy PC/Slave-16 cards.
  5782.  
  5783.     Software Limitations:
  5784.  
  5785.     1. ATNX runs Orchid PC Net applications but NTNX is more versatile and will
  5786.     run applications for Novell's  Advanced Netware, MS-Net, AND Orchid  PC Net
  5787.     with proper file locking.  NTNX has had less problems  with file corruption
  5788.     and cross-linking than ATNX, according to SysOps using Alloy Slaves.
  5789.  
  5790.     2.  The slaves  get  the  date/time  from  the  host  computer.    Constant
  5791.     processing can  cause the host clock  to drift.  A  utility to periodically
  5792.     update your  host computer clock  is recommended.   Also, WXMODEM  does not
  5793.     work  in upload  mode on  Slaves due  to  a timing  problem in  the initial
  5794.     handshake.   Alloy's solution to this problem  is a file called UPTIME.COM,
  5795.     which is run  on the HOST, but I  have had very poor results with  it.  The
  5796.     problem seems to be most identifiable on AT class machines.
  5797.  
  5798.     For the optimum system  flexibility you may want to buy  Alloy PC/Slave-16N
  5799.     cards which have  the special  PAL chip for  NTNX/Novell compatibility  and
  5800.     NTNX software.   RBBS-PC, however, will run fine without  the PAL chip even
  5801.     under NTNX.
  5802.  
  5803.     Some  nice   additional  utilities   for  the  Slaves,   including  special
  5804.     diagnostics, are found in the separate PC-Plus Advanced  User's Kit and are
  5805.     worth having.   A single Kimtron  KT-7/PC terminal or other  smart terminal
  5806.     may be obtained right away but is not necessary for the bulletin-board-only
  5807.     system  as  one can  always sign  on from  remote  for answering  mail; pay
  5808.     special  attention to the terminal-to-Slave cable as it is non-standard and
  5809.     you'll probably wind up making it yourself for less than $5 in parts -- one
  5810.     end is a male 9-pin D-shell and the  other is 25-pin RS-232 male connector.
  5811.     For a two to four node system, obtain a  switch box to hook the terminal as
  5812.     COMMON and  Slave consoles.  The  computer to house the  Slaves, called the
  5813.     HOST,  should be  the  quickest CPU  speed that  you  can obtain.    All PC
  5814.     Slaves/16 should be purchased with 1 megabyte of onboard RAM.
  5815.  
  5816.     Installation:
  5817.  
  5818.     1. Format your hard drive with the DOS supported by the version of NTNX you
  5819.     purchase (currently DOS 3.3).
  5820.  
  5821.     2. Divide the  hard drive into multiple volumes of  standard DOS size (less
  5822.     than 32 megabytes).
  5823.  
  5824.     3. Install NTNX and the Slaves according to the Alloy manuals.  Choose  the
  5825.     default settings for everything.   Use 512K on the 1 megabyte  PC/Slave for
  5826.     caching and the  other  512  to run RBBS.   Depending on  how the board  is
  5827.     configured,  you may  need  to set  switches so  that  512 is  used to  run
  5828.     applications.  Use  4K for the Host PC caching.  Allocate 25 files per each
  5829.     Slave + 64 for the maximum number of open files.
  5830.  
  5831.     4.  Set up the  CONFIG.SYS and AUTOEXEC.BAT  files for the  HOST as follows
  5832.     especially if you do not plan to use the HOST as a Node for RBBS-PC:
  5833.        CONFIG.SYS
  5834.           device=NX.SYS          -  NTNX driver (must be first!!)
  5835.           device=hard_drv.sys    -  Your hard Disk driver
  5836.  
  5837.  
  5838.  
  5839.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     N-4
  5840.  
  5841.  
  5842.           FCBS = 32,32           -  File Control Blocks increased
  5843.           buffers = 20           -  DOS buffers
  5844.           files = 32             -  Number of OPEN files on HOST
  5845.           device = ANSI.sys      -  Extended graphics driver
  5846.     AUTOEXEC.BAT
  5847.           NTNX                   -  NTNX driver
  5848.           fm 3                   -  Level of File protection
  5849.           prompt $p$g            -  customized dos prompt
  5850.           path = ........        -  set path to the NTNX files
  5851.  
  5852.     5. Set up the CONFIG.SYS and AUTOEXEC.BAT files for the Slaves as follows:
  5853.        CONFIG.U0x under DOS 3.3
  5854.           FCBS = 32,32
  5855.           buffers = 10
  5856.           files = 30
  5857.           device = ansi.sys
  5858.           shell = C:\COMMAND.SLV C:\ /P /E:800
  5859.  
  5860.     Of  special  note,  the  SHELL  statement  has  been  used  to  expand  the
  5861.     environment space on the Slaves.  This corrects a problem  seen with random
  5862.     RBBS-PC lockups or  getting Out  of Memory errors;  external protocols  and
  5863.     DOOR  programs,  given time,  stop running  due to  memory problems  if one
  5864.     doesn't  use this  SHELL  statement.    Under  DOS 3.1,  set  /E:50  [=  50
  5865.     paragraphs] and under DOS 3.2 or 3.3, set /E:800 [= 800 bytes].
  5866.        AUTOEXEC.U0x
  5867.           fm 3
  5868.           prompt $p$g
  5869.           path = .......Set the path to the NTNX files and to the 'home'
  5870.                      directory for this node on the SHARED drives
  5871.           SET NODE=x    Tell this slave what node to run.
  5872.           cd\RBBS0%NODE%  Change to the RBBS-PC directory for this node
  5873.           RBBS.BAT     Invoke RBBS-PC for this node
  5874.  
  5875.     The statement "SET NODE=x" allows  you to write batch files that  know what
  5876.     node you are  dealing with.  All slaves can access  the same RBBS.BAT file,
  5877.     as long as you invoke RBBS-PC from within that file as:
  5878.      RBBS-PC %NODE% RBBS%NODE%PC.DEF
  5879.     Other node-specific commands should be done this way.
  5880.  
  5881.     6. CONFIG parameters for the slaves, must be the following parameters:
  5882.           Parameter 29 (Type of computer):  Compaq Plus.
  5883.           Parameter 224 (Number of rings to wait before answering):  0.
  5884.           Parameter 162 (Environment):  Orchid PC Net.
  5885.           Parameter 221 (Communications port):  2.
  5886.           Maximum  number of users:  at least as  many slaves as you have, plus
  5887.     one if you plan to run a node on the host.  You can specify more (up to 36)
  5888.     if you want to plan for expansion.
  5889.  
  5890.     7. Set up RBBS-PC as follows:
  5891.           Create subdirectories \RBBS01, \RBBS02, \RBBS0x... on a shared drive.
  5892.  
  5893.           Create other subdirectories according to RBBS-PC documentation.
  5894.  
  5895.           On a  cached drive,  place all  static RBBS-PC  files such  as MENUs,
  5896.     HELPs, PASSWRDS,  TRASHCAN, external file transfer  protocols.  RBBS-PC.EXE
  5897.     and CONFIG.EXE go here as well.
  5898.  
  5899.     On  the  second SHARED  drive, make  a  subdirectory \COMMON  for MESSAGES,
  5900.     USERS, CONFENCE, and conference message/user files.
  5901.  
  5902.  
  5903.  
  5904.     APPENDIX N -- RBBS-PC in an Alloy PC-SLAVE/16 Environment               N-5
  5905.  
  5906.  
  5907.           If  you plan to use DOORS, especially Bob Westcott's DOORWARE, create
  5908.     a subdirectory called \DOORS on the SHARED drive.
  5909.  
  5910.           Run CONFIG and create RBBSxPC.DEF files for all your nodes.  Remember
  5911.     that you  will run multi-user under PC  Net.  The modem  serial port on the
  5912.     Slaves is COM2 and not COM1.   Double-check file locations! Put your static
  5913.     text files in the same subdir as MESSAGES and USERS and make it the default
  5914.     subdirectory
  5915.  
  5916.           Copy RBBS1PC.DEF to  RBBSxPC.DEF for each node that you  hope to have
  5917.     then re-edit each .DEF  file to customize Node numbers such  as RCTTY1.BAT,
  5918.     etc.
  5919.  
  5920.     Copy the RBBSxPC.DEF file to the matching subdirectory.  If  you don't wish
  5921.     to edit the .DEF files, place RBBSxPC.DEF on one shared drive and place the
  5922.     dynamic RBBS-PC files on the other  shared drive; be sure that you  have at
  5923.     least  logged  into that  other  SHARED  drive's  subdirectory,  using  the
  5924.     AUTOEXEC.U0x  before starting RBBS-PC or  else RBBS-PC will  not find those
  5925.     files.
  5926.  
  5927.           Temporary  files used for transfer or Verbose ARC listing are created
  5928.     on the default  subdirectory automatically.   You must  assign a  different
  5929.     CALLERS file for each node located in the default directory.
  5930.  
  5931.           To  use SysOp  Function 7  (Remote Drop  to  DOS), RBBS-PC  must find
  5932.     COMMAND.COM.    PC-Slave/16's,  however,  use COMMAND.SLV  as  the  command
  5933.     processor; copy COMMAND.SLV to COMMAND.COM, place it on a cached drive, and
  5934.     tell CONFIG where to  find it.  Be  careful using this SysOp function  with
  5935.     the Slaves as you will  lock up the Node  if you lose carrier; WATCHDOG  is
  5936.     incompatible with the Slaves.
  5937.  
  5938.     Additional tips/hints:
  5939.     1. Avoid using  any memory  resident utilities.   They  may interfere  with
  5940.     Slave operation.
  5941.  
  5942.     2. A program on the  Advanced Utilities disk called SEE.COM  allows callers
  5943.     on any Node to be viewed from the HOST.
  5944.  
  5945.     3. Norton's Editor or WordPerfect Corporation's Programmers Editor from the
  5946.     WordPerfect  Library  is  used  for   editing  operations  on  the  system,
  5947.     especially  for   maintaining  the  fixed-length  directory   of  the  file
  5948.     management system.   Not  many other  editors, except  EDLIN,  can be  used
  5949.     reliably.
  5950.  
  5951.     4. Easy to  forget but don't as it will be  a source of frustration -- plan
  5952.     out your file locations on paper before actually setting up the system.
  5953.  
  5954.     5. Backup your system frequently!
  5955.  
  5956.     If you have any questions or problems, feel free  to leave a message on Ken
  5957.     Goosens system (703) 978-6360.
  5958.  
  5959.  
  5960.  
  5961.     APPENDIX O -- RBBS-PC and 10 NET Network                                O-1
  5962.  
  5963.  
  5964.     APPENDIX O -- RBBS-PC and 10 NET Network
  5965.     ----------------------------------------
  5966.     Starting with RBBS-PC 15.1A support  for Fox Research's' 10 Net  Network is
  5967.     being provided.
  5968.  
  5969.     Since this is the first release with this support we have  very little that
  5970.     we can offer in tuning support for 10 NET.
  5971.  
  5972.     We selected to use the Semaphore locking mechanism that we have used in the
  5973.     other networks and therefore  you must specify the following  parameters on
  5974.     the Superstation in your 10 NET network.
  5975.  
  5976.     LOGINS=x            1 for every node on the system
  5977.     OPENFILE=xxx        10 for every node running RBBS-PC
  5978.     SHAREFIL=16         (This is the default you can add more if you want)
  5979.     LOCKS=x             3
  5980.     SEMA=xxx            3 for every node running RBBS-PC
  5981.  
  5982.     You will also need to run NETSU and specify option 6 (DOS file sharing).
  5983.  
  5984.     Please note that  these values should be in addition  to any parameters you
  5985.     may have already specified for  other User stations and other uses  of your
  5986.     10 NET network.  And you can always make the values larger in attempting to
  5987.     improve performance.
  5988.  
  5989.  
  5990.  
  5991.     APPENDIX P -- Running RBBS-PC on a NETBIOS network                      P-1
  5992.  
  5993.  
  5994.     APPENDIX P -- Running RBBS-PC on a NETBIOS network
  5995.     --------------------------------------------------
  5996.     CONFIG parameter  162 allows the SysOp to select an environment for running
  5997.     multiple copies  of RBBS-PC.  One of the environments is "DOS SHARE," which
  5998.     allows  a large  number  of LANs  to  support  RBBS-PC.   Any  LAN that  is
  5999.     "NetBIOS"  compatible should allow RBBS-PC to run multiple nodes, since the
  6000.     DOS SHARE utility  is usually supported  with all NetBIOS LANS.   Operating
  6001.     RBBS-PC on a network which supports the NETBIOS interface is therefore very
  6002.     simple.  Outlined step-by-step, the procedure is as follows:
  6003.  
  6004.       1) Install and load your network software.
  6005.       2) Configure RBBS-PC for the network environment.
  6006.       3) Prepare files which are to be shared, but not written to.
  6007.  
  6008.     Let's discuss these items in detail.
  6009.  
  6010.     INSTALL AND LOAD YOUR NETWORK SOFTWARE
  6011.  
  6012.          Obviously,  for each  different network,  this procedure  will change.
  6013.          This manual doesn't  attempt to replace  or augment the  documentation
  6014.          which accompanied your network software.  It only covers how to set up
  6015.          RBBS-PC to work  with a NETBIOS LAN.  The assumption  is made that you
  6016.          can, and have, correctly installed your network.
  6017.  
  6018.          However, so that you understand what we mean by "install and load", we
  6019.          will present a  generic description  here.  (It  should be noted  that
  6020.          there  are certain  similarities  between all  NETBIOS LAN  products.)
  6021.          First,  the "core" of  the network software  must be  loaded after you
  6022.          boot  the machine  (e.g. the NET  START command).   Next,  any of your
  6023.          computer's resources which others  require access to must be  "shared"
  6024.          (e.g. the NET SHARE command).   And finally, any resources which  your
  6025.          computer requires access to must be "used" (e.g. the NET USE command).
  6026.  
  6027.          Please note that NET START, NET SHARE, and NET USE are all examples of
  6028.          the commands used  by the IBM  PC LAN Program.   Your actual  commands
  6029.          might be different.
  6030.  
  6031.     CONFIGURE RBBS-PC FOR THE NETWORK ENVIRONMENT
  6032.  
  6033.          Begin by running  the RBBS-PC CONFIG  utility.  Set  parameter 162  to
  6034.          "6", which tells it that RBBS-PC is running on a NETBIOS LAN.  (Please
  6035.          check parameter 161  while you are there, also, and  make sure that it
  6036.          is correct for the number of nodes you intend to run.)
  6037.  
  6038.          You  will notice, when you select  parameter 162, the reference to the
  6039.          DOS  utility SHARE.EXE.   This utility must  be loaded in  order for a
  6040.          NETBIOS  LAN to  function  properly.   The  startup command  for  most
  6041.          networks will cause SHARE.EXE  to be loaded (i.e.  when the NET  START
  6042.          command is issued, the network looks in the current path for SHARE.EXE
  6043.          and loads it).
  6044.  
  6045.          If,  for some  odd reason,  your network  does not  automatically load
  6046.          SHARE.EXE,  you  will  need to  perform  this  task  manually in  your
  6047.          AUTOEXEC.BAT file (DOS 4.x users can  opt for the "INSTALL=" option in
  6048.          their CONFIG.SYS files).
  6049.  
  6050.     PREPARE FILES WHICH ARE TO BE SHARED, BUT NOT WRITTEN TO
  6051.  
  6052.  
  6053.  
  6054.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     P-2
  6055.  
  6056.  
  6057.          Once  RBBS-PC is aware  of the fact  that you're running  on a NETBIOS
  6058.          LAN, it will open  all of the files  it intends to update in  "shared"
  6059.          mode.   However, when RBBS-PC  opens a file  for READ access  only, it
  6060.          does  NOT  use  DOS SHARE.    This  will  on  occasion  cause  sharing
  6061.          violations when more than one node tries  to read the same file at the
  6062.          same time.   To compensate for  the problem, you should  set the "read
  6063.          only" attribute  of any  file  which will  NOT be  updated during  the
  6064.          course of the call.  Files such as WELCOME, PRELOG, all HELP, bulletin
  6065.          and news files should be "read only."
  6066.  
  6067.          (You change a  file's read only  status with  the DOS utility  ATTRIB.
  6068.          The syntax is "ATTRIB +R (filename)."  Please note that ATTRIB must be
  6069.          located  in  the  current search  path,  and the  "+R"  switch  can be
  6070.          reversed into "-R", when you want to remove a file's  read only status
  6071.          in order to edit it.)
  6072.  
  6073.          We recommend  setting the read only  status on any file  which you are
  6074.          certain will not be updated (i.e. written back to).
  6075.  
  6076.     SUMMARY
  6077.  
  6078.     The hardest part about setting  up RBBS-PC in a network environment  is the
  6079.     actual setup  of the program for  multi-node operation.  But  if you follow
  6080.     certain guidelines (laid out for you in Appendix G), you should be fine.
  6081.  
  6082.  
  6083.  
  6084.     APPENDIX Q -- RBBS-PC and the IBM PCjr                                  Q-1
  6085.  
  6086.  
  6087.     APPENDIX Q -- RBBS-PC and the IBM PCjr
  6088.     --------------------------------------
  6089.     RBBS-PC adheres to the Hayes standards for autoanswer applications that are
  6090.     described in Section 9,  "Writing Programs for the Smartmodem 1200," of the
  6091.     SMARTMODEM  1200  HARDWARE REFERENCE  MANUAL.   Under the  section entitled
  6092.     "Additional  Program  Considerations"   Hayes  recommends  that  autoanswer
  6093.     applications (like  RBBS-PC) "... force the modem  to answer the call (ATA)
  6094.     rather than allowing  the modem  to automatically answer...."     Beginning
  6095.     with 13.1A, RBBS-PC no longer REQUIRES  the Ring Indicator signal from  the
  6096.     modem (pin 22)  in order to answer  the phone (except  if parameter 224  of
  6097.     CONFIG is non-zero).
  6098.  
  6099.     Here are some facts about the PCjr:
  6100.  
  6101.       1) The PCjr's external  modem interface  does not have  a Ring  Indicator
  6102.          signal.
  6103.       2) The  PCjr requires  that an  external modem  be opened  as COM1  if no
  6104.          internal modem is installed.  However, if no internal modem exists the
  6105.          PCjr requires that the  COM2 RS-232 registers be used  even though the
  6106.          port has been opened as COM1.  Technically this is  described as using
  6107.          the external  RS-232 asynchronous adapter  as logical channel  1 (i.e.
  6108.          COM1) but manipulating  it as physical  channel 2  (i.e. COM2).   This
  6109.          occurs on a PCjr only  when an internal   modem is NOT present and the
  6110.          external RS-232 interface is.
  6111.       3) The 128K PCjr only  provides 90K of  usable RAM (the  rest is used  by
  6112.          DOS, the monitor's buffers, etc.).  Fortunately PCjr owners can get up
  6113.          to 512K of RAM with "add-on"  equipment (from IBM and others) in order
  6114.          to have enough RAM for RBBS-PC to run in.
  6115.       4) The standard PCjr supplied by IBM does not have  a DMA and hence can't
  6116.          do communications I/O simultaneously while doing disk I/O.
  6117.  
  6118.     RBBS-PC beginning  with version 13.1A will  run an IBM PCjr  providing that
  6119.     the PCjr
  6120.  
  6121.       1) Has at least 320K of memory.
  6122.       2) Disk I/O does  not occur simultaneously with  communications I/O (i.e.
  6123.          either you have a second disk drive with a DMA or you set BUFFERS=0).
  6124.       3) One of the following three modem configurations are used:
  6125.        - An internal PCjr modem with an external Hayes modem where the external
  6126.          Hayes modem is used for RBBS-PC.
  6127.        - No internal PCjr modem with an external Hayes modem used for RBBS-PC.
  6128.        - Only an internal PCjr modem and it is used for RBBS-PC.
  6129.  
  6130.     The following discusses  each of these three modem configurations supported
  6131.     by RBBS-PC with the PCjr.
  6132.  
  6133.     Internal PCjr Modem with RBBS-PC Using External Hayes Modem
  6134.     -----------------------------------------------------------
  6135.     This configuration means that the  PCjr has both a COM1 (the  internal PCjr
  6136.     modem)  and a COM2  (the external Hayes modem).   RBBS-PC is  set up to use
  6137.     COM2.   No  changes  are required  to for  RBBS-PC  for this  type of  PCjr
  6138.     configuration.  CONFIG parameter  224 should be set to 0.   This will cause
  6139.     RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  6140.     will  wait for carrier detect.  This  is the way that RBBS-PC overcomes the
  6141.     PCjr's  lack of  "ring-indicator"  signal for  the external  communications
  6142.     port.
  6143.  
  6144.  
  6145.  
  6146.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     Q-2
  6147.  
  6148.  
  6149.     No Internal PCjr Modem With RBBS-PC Using External Hayes Modem
  6150.     --------------------------------------------------------------
  6151.     This configuration means that the PCjr has only one RS-232 interface -- the
  6152.     external Hayes modem.  This must be opened as COM1 but use COM2's registers
  6153.     to control  the communications port (believe  it or not that's  the way IBM
  6154.     designed the PCjr).
  6155.  
  6156.     CONFIG parameter 221 should be used to indicate that COM1 is being used.
  6157.  
  6158.     Unfortunately  the  current  BASIC  compilers  (both  IBM's Version  2  and
  6159.     Microsoft's QuickBASIC)  are incapable of handling a  communication port as
  6160.     logical device 1 (i.e. COM1) but on physical channel 2 (i.e. the interrupts
  6161.     are for COM2).
  6162.  
  6163.     Should this ever  be fixed by either IBM or  Microsoft, CONFIG parameter 29
  6164.     should be used to indicate that no internal PCjr  modem is installed.  This
  6165.     tells CONFIG  to make sure that  COM2 registers are used  to manipulate the
  6166.     PCjr's external communications port.
  6167.  
  6168.     Until this is fixed by the  respective vendors, the PCjr user will have  to
  6169.     run a  utility like COMSWAP  that exchanges  the pointers between  COM1 and
  6170.     COM2 within DOS.
  6171.  
  6172.     In either case, CONFIG parameter 224 should  be set to 0.  This will  cause
  6173.     RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  6174.     will wait for carrier  detect.  This is the way  that RBBS-PC overcomes the
  6175.     PCjr's  lack of  "ring-indicator"  signal for  the external  communications
  6176.     port.   Again  no changes  to RBBS-PC  are required  for this type  of PCjr
  6177.     configuration.
  6178.  
  6179.     Only An Internal PCjr Modem for RBBS-PC and NO External Hayes Modem
  6180.     -------------------------------------------------------------------
  6181.     For  this  type of  PCjr  configuration, you  can take  the  CONFIG default
  6182.     settings  for the  communications  port (COM1)  and  specify that  you  are
  6183.     running on a PCjr (parameter 29).  However, make sure that CONFIG parameter
  6184.     228 specifies that the modem is to be opened at 300 baud.  Of course, RBBS-
  6185.     PC  will be  only able  to answer the  telephone at  300 baud  and send and
  6186.     receive data from users who log on with their communications parameters set
  6187.     at N/8/1 (i.e. no parity, eight data  bits, and one stop bit) since RBBS-PC
  6188.     is limited by the PCjr's own modem's limitations.
  6189.  
  6190.     RBBS-PC already has the modem commands for the PCjr's very strange internal
  6191.     modem in the logic to answer the phone  so no changes to the .DEF file  are
  6192.     required.
  6193.  
  6194.  
  6195.  
  6196.     APPENDIX R -- Using RBBS-PC to access ORACLE or dBASE Remotely          R-1
  6197.  
  6198.  
  6199.     APPENDIX R -- Using RBBS-PC to access ORACLE or dBASE Remotely
  6200.     --------------------------------------------------------------
  6201.     1.  The Need for Data Base Services
  6202.  
  6203.     A  feature that  has been  long missing  from PC  based host  communication
  6204.     systems is the ability for SysOps  to install customized data bases and let
  6205.     callers run true interactive data base queries against them.   Because data
  6206.     base management is a major programming task, the most promising  way to add
  6207.     data  base  services is  to use  RBBS-PC's  original and  innovative "DOOR"
  6208.     mechanism to exit RBBS-PC and  have the remote user enter an  existing data
  6209.     base management program.
  6210.  
  6211.     "DOORing" to a data base management program, however, is not as easy as one
  6212.     might  hope.   The  major  problems  stem  from the  fact  that  data  base
  6213.     management  programs are never designed to work  in this environment.  This
  6214.     is because:
  6215.  
  6216.       1) Most programs write  to the hardware  for speed rather  than use  bios
  6217.          calls,  causing the  "screen" output  to appear  on the  host terminal
  6218.          rather than on the caller's terminal.
  6219.  
  6220.       2) Data base  programs do not monitor for carrier.  If carrier drops they
  6221.          simply sit forever waiting for input rather than terminating.
  6222.  
  6223.       3) Most  use "full  screen" rather than  "line at a  time", which usually
  6224.          does not work properly on a remote terminal.
  6225.  
  6226.       4) Security.  Most data  base programs have no  way to limit what a  user
  6227.          can do.    For example,  they do  not have  a read-only  mode, or  the
  6228.          ability  to restrict a user to specific files or fields.  Many let the
  6229.          user  issue dos  commands inside  them, which  gives to call  too much
  6230.          power.
  6231.  
  6232.       5) Difficulty  in learning to  use.  A  caller can hardly  be expected to
  6233.          know  how to use a  data base.  Hence it  must be possible to simplify
  6234.          and control the user interface inside the data base package.
  6235.  
  6236.     Progress has been made with two of the most popular PC data bases -- ORACLE
  6237.     and dBASE.
  6238.  
  6239.     Using dBASE "DOORS" with RBBS-PC
  6240.     --------------------------------
  6241.     db/LIB  is a relatively  new piece of  software by AJS  Publishing of North
  6242.     Hollywood, CA that makes remote dBASE access  possible.  db/LIB is a set of
  6243.     two  assembled  libraries which  can be  used  to create/modify  dBASE data
  6244.     structures, create/update dBASE indices, and naturally manipulate the dBASE
  6245.     records.    These   libraries  also  have   many  replacements  for   dBASE
  6246.     functions/commands  not  easily  replicated  (i.e.  IIF,  RECNO(),  DATE(),
  6247.     RTRIM(), DELETED(), etc.) outside of the dBASE environment.  db/LIB is also
  6248.     available in a multi-user version.
  6249.  
  6250.     db/LIB  was designed  to  work with  Microsoft  Quick BASIC  4.0  and BASIC
  6251.     Compiler  6.0  (there is  a  QB  2/3 version  available  directly from  AJS
  6252.     Publishing after you purchase db/LIB).
  6253.  
  6254.     dBASE Remote Access Advantages/Disadvantages
  6255.  
  6256.     Combine db/LIB with any well  written door skeleton (such as the  very fine
  6257.     skeleton) and you  can have  a true shareable  remote database system.  The
  6258.  
  6259.  
  6260.  
  6261.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     R-2
  6262.  
  6263.  
  6264.     following  section highlights  some advantages  and addresses  the problems
  6265.     concerning remote dBASE database access.
  6266.  
  6267.     Advantages of using db/LIB and dBASE data bases:
  6268.  
  6269.       1) Purchase of  dBASE  is not  required.   db/LIB can  create modify  and
  6270.          maintain any dBASE structure.  A program with db/LIB and downloaded by
  6271.          a third party can give  these same freedoms to a third  party.  Sample
  6272.          programs with db/LIB demonstrate that most of dBASE's functions can be
  6273.          replicated or substituted using db/LIB.
  6274.  
  6275.       2) If dBASE (or any good clone) is owned, then the two  work very well in
  6276.          tandem.  The  programmers at Ashton-Tate didn't  gain their reputation
  6277.          for writing  junkware.   By owning  dBASE, the user  can download  any
  6278.          database  structure and  perform  any data  manipulation  easily in  a
  6279.          familiar environment.
  6280.  
  6281.       3) Full  screen  (ANSI)  writes,   security,  carrier  monitoring,  error
  6282.          trapping,  are all handled by the door skeleton.  Let database modules
  6283.          run the database, and let the door modules run the door.
  6284.  
  6285.     Disadvantages of using db/LIB and dBASE data bases:
  6286.  
  6287.       1) Remote dBASE database access  is not the  same as accessing dBASE  III
  6288.          remotely.   Creation of these DOORS requires knowledge of Quick BASIC,
  6289.          some knowledge of  data communications, and  some knowledge of  dBASE.
  6290.          All end user requirements  have to be anticipated, all  cases covered,
  6291.          and  created in advance.   Once the application  is created, then user
  6292.          need no little or nothing about any of the above.
  6293.  
  6294.       2) Not  all users can  use ANSI commands  for full screen  editing.  This
  6295.          means  that doors  need to  have a  scrolling (terminal)  type display
  6296.          capability as a substitute for the normal full screen writes.  In some
  6297.          doors  this  will simply  be  impossible,  preventing  all users  from
  6298.          database access.
  6299.  
  6300.     For  those  interested  in  dBASE-based  on-line  data base  searches  with
  6301.     RBBS-PC, you might  try writing Steven Kling at 4009  Utah Ave., Brentwood,
  6302.     MD 20722.    Steven is  the  author of  BBS_BASE, USER_BASE  and  DoorBase.
  6303.     BBS_BASE  is a  non-ANSI  dBASE III  demonstration  DOOR that  maintains  a
  6304.     database of Bulletin Board names, phone numbers, etc.  This database can be
  6305.     queried, added to,  edited, and up to the minute  reports can be generated.
  6306.     The entire database with indices can be downloaded by the user for personal
  6307.     use.  This database is indexed and  therefore can be queried either by name
  6308.     or phone  number.  BBS_BASE  was written only  as a demonstration  of using
  6309.     RBBS-PC to access a data  base remotely.  USERBASE is a  dBASE registration
  6310.     door for  RBBS-PC 15.1C  and  above. It  comes in  both  ANSI and  non-ANSI
  6311.     versions  and gives an automatic access upgrade  capability to the SysOp at
  6312.     his/her option.
  6313.  
  6314.     Steven Kling and  Michael Kelly  are collaborating on  DoorBase, which  has
  6315.     just been released, and this will give  a SysOp the capability to place any
  6316.     dBASE III  database on-line, and will allow him/her to  set up all the full
  6317.     screen  display  features  to  his/her own  specification.    DoorBase  has
  6318.     multiple  demonstration   databases   available  including   databases   of
  6319.     Congressmen, dBASE vendor support companies, and a national BBS listing.
  6320.  
  6321.     Steven is also  the SysOp  of Technopeasants' EAST  RBBS at  (301)-927-4258
  6322.     Brentwood, MD (PC Pursuitable) 24 Hours/ 2400 baud.
  6323.  
  6324.  
  6325.  
  6326.     APPENDIX R -- Using RBBS-PC to access ORACLE or dBASE Remotely          R-3
  6327.  
  6328.  
  6329.     Michael  is  the  SysOp  of  Technopeasants'  WEST RBBS  at  (503)-257-7070
  6330.     Portland, OR (PC Pursuitable) 24 Hours/ 2400 Baud.
  6331.  
  6332.     Using ORACLE with RBBS-PC for On-line Data Base Access
  6333.     ------------------------------------------------------
  6334.     Another database package that is able to be used as a "door" is ORACLE from
  6335.     Oracle  Corporation at  One Oracle  Parkway  in Belmont,  California 94002.
  6336.     Their number is  (800) 345-DBMS.   ORACLE is a  very promising solution  to
  6337.     providing  remote  data  base  services.   Oracle  addresses  the  problems
  6338.     mentioned earlier as follows.
  6339.  
  6340.       1) Screen writes.   ORACLE  can use  ANSI sequences or  bios calls.   All
  6341.          output appears perfectly  normal on remote terminals  through the CTTY
  6342.          interface in RBBS-PC.
  6343.  
  6344.       2) Monitor for carrier.   Run WATCHDOG, which will reboot  your system if
  6345.          carrier drops.
  6346.  
  6347.       3) Full screen mode.  ORACLE uses only ANSI commands to control the users
  6348.          screens.  Callers whose  remote communications package implements ANSI
  6349.          support therefore see  full screen  writes exactly the  same as  local
  6350.          users.  FULL SCREEN WORKS!
  6351.  
  6352.       4) Security.  ORACLE has all the  security you could ever want because it
  6353.          was designed for multi-user systems.
  6354.  
  6355.       5) Usability.  ORACLE  implements SQL, which is  increasingly becoming an
  6356.          industry standard that all major data base systems are supporting.
  6357.  
  6358.     Of course, there are  some problems using ORACLE in  a way in which  it was
  6359.     never designed:
  6360.  
  6361.       1) There  is a  problem  getting  the  function  keys  to  work  properly
  6362.          remotely.
  6363.  
  6364.       2) The ability  for a  caller to  use DOS commands  needs to  be disabled
  6365.          within ORACLE.
  6366.  
  6367.       3) Callers  who do not  know SQL need  pre-structured queries  and a menu
  6368.          interface  to be  designed for them.   ORACLE  supports a  full screen
  6369.          interface but the user  interface in ORACLE is not  as programmable as
  6370.          one would like.
  6371.  
  6372.     For those  interested  in  ORACLE-based on-line  data  base  searches  with
  6373.     RBBS-PC,  you might  try  writing John  Prior  at P.O.  Box 56589,  Harwood
  6374.     Heights, IL 60656-0589.  John is the SysOp of
  6375.  
  6376.            SQLBBS at (312)-589-0508
  6377.            Chicago, IL.  (PC Pursuitable)
  6378.            24 Hours/ 9600 baud Microcom MNP Level 6
  6379.  
  6380.     The SQLBBS is a bulletin board system specializing in supporting relational
  6381.     data  base managers  and making  the  power of  SQL  available to  callers.
  6382.     SQLBBS uses an RBBS-PC door to get into ORACLE.  The SQLBBS has implemented
  6383.     ORACLE to help  manage the  data processing  for the  National Council  for
  6384.     Children's  Rights  (NCCR), and  has several  major  data bases  on-line of
  6385.     general interest.   People  can contact John  Prior, the  SQLBBS SysOp,  on
  6386.     Compuserve, by mail, or by calling SQLBBS if they wish to see how ORACLE is
  6387.     implemented,  get   the  latest  progress  report,   or  share  experiences
  6388.  
  6389.  
  6390.  
  6391.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     R-4
  6392.  
  6393.  
  6394.     implementing relational systems.  Here are details on the SQLBBS system and
  6395.     how to reach it:
  6396.  
  6397.         Modem:              9600 Baud Microcom MNP Level 6
  6398.         BBS Number:         312/589-0508
  6399.         Hours:              24 hrs/day
  6400.         Address:            Prior Computer Service Inc.
  6401.                             POB 56589
  6402.                             Chicago IL 60656-0589
  6403.         Compuserve ID:      76266,1072
  6404.         SysOps:             John F. Prior
  6405.                             Bernadette Foley
  6406.  
  6407.         SQL Tables          Roster of the House of Representatives
  6408.         Available           Roster of the Senate [both with addresses etc.]
  6409.         Now                 The States [2 char abbreviation and full name]
  6410.                             All the 5 digit zip codes in the US
  6411.  
  6412.     Call SQLBBS  as you would any other  RBBS-PC system.  Go  through the Door.
  6413.     SQLBBS executes a  "SELECT * FROM  TAB;" for  you which shows  you the  50+
  6414.     tables you can access.   At the SQL> prompt execute any  SELECT command you
  6415.     want against any one of the tables.
  6416.  
  6417.     "SELECT * FROM STATES;"                      returns    all  rows [records]
  6418.                                                  of the STATES table.
  6419.  
  6420.     "SELECT  * FROM STATES WHERE ST = 'MA';"     returns  all  rows   about the
  6421.                                                  state  whose     two-character
  6422.                                                  code is "MA".
  6423.  
  6424.     "SELECT COUNT(*) FROM STATES;"               gives  you a count of the rows
  6425.                                                  in the STATES table.
  6426.  
  6427.     If you substitute another table  or view instead of STATES such  as SENATE,
  6428.     you can access other tables/views.
  6429.  
  6430.     "DESC HOUSE"                  would  return the column   names of the HOUSE
  6431.                                   table.
  6432.  
  6433.     "HELP"                             gets you help.
  6434.  
  6435.     "HELP SELECT"                      gets  you  help on  the SELECT command.
  6436.  
  6437.     "HELP SET"                         gets   you  help   on the   SET  command
  6438.                                        which  can  control   many  options  for
  6439.                                        display
  6440.  
  6441.     "SHOW ALL"                         shows  you everything  you  can SET.
  6442.  
  6443.     "EXIT"                             terminates  UFI  and  returns    you  to
  6444.                                        RBBS-PC.
  6445.  
  6446.  
  6447.  
  6448.     APPENDIX S -- Using RBBS-PC with SEAdog to Access FIDO-NET              S-1
  6449.  
  6450.  
  6451.     APPENDIX S -- Using RBBS-PC with SEAdog to Access FIDO-NET
  6452.     ----------------------------------------------------------
  6453.     SEAdog  is a  full-featured electronic  mail system  based on  the personal
  6454.     computer and using standard telephone lines.   It is a sophisticated store-
  6455.     and-forward  mail system which can  be configured in  a virtually unlimited
  6456.     number  of network topologies  (more on this  later).   Unlike some network
  6457.     systems, the end user need never concern himself with network routing -- it
  6458.     all happens automatically.   The user just submits and  retrieves messages,
  6459.     the system takes  care of the details.  The hardware  needed to run RBBS-PC
  6460.     is sufficient to run SEADOG.
  6461.  
  6462.     SEAdog  uses  the  FidoNet Electronic  Mail  Protocol,  as  defined in  the
  6463.     document,   A  Basic   FidoNet   Technical  Standard,   published  by   the
  6464.     International FidoNet Association (IFNA).  The FidoNet Protocol is a public
  6465.     domain electronic  mail standard originally  developed by Tom  Jennings for
  6466.     the  Fido bulletin  board system.  For more  information about  the FidoNet
  6467.     Protocol, please write to:
  6468.  
  6469.         The International FidoNet Association
  6470.         P.O. Box 41143
  6471.         St. Louis, Missouri  63141
  6472.         United States of America
  6473.  
  6474.     There are several  advantages to using the FidoNet  Protocol, not the least
  6475.     of  which is that  a great many  utilities and programs  are available from
  6476.     many  different  vendors for  doing  various things  with  electronic mail.
  6477.     Please contact IFNA at the above address for more information.
  6478.  
  6479.     The heart of SEAdog is  the network mail server,  MAILER.EXE.  This is  the
  6480.     program  that places and receives phone calls, handles message routing, and
  6481.     so forth.   It is  left running when you  would normally turn  your machine
  6482.     off.
  6483.  
  6484.     You can set  RBBS-PC to  drop to  DOS at a  time when  telephone costs  are
  6485.     cheapest (normally 4 a.m.  Eastern Standard time  and 1 a.m. Pacific  time)
  6486.     and invoke the mailer so that it begins placing phone calls to other SEAdog
  6487.     systems to pass them your outgoing mail and receive your incoming mail.
  6488.  
  6489.     SEAdog costs  $100.00 and can be  ordered from the address  or phone number
  6490.     below.
  6491.  
  6492.             Thom Henderson
  6493.     SYSTEM ENCHANCEMENT ASSOCIATES
  6494.            21 Wayne Street
  6495.        Wayne, New Jersey 07470
  6496.            V:201-473-5153
  6497.  
  6498.     This doc  file is  not intended  to replace the  SEAdog manual,  but rather
  6499.     provide  information  that   an  RBBS-PC  SysOp  would   find  useful  when
  6500.     configuring RBBS-PC to run with SEAdog.
  6501.  
  6502.     The current status of the RBBS-PC - SEAdog project is at the level in which
  6503.     RBBS-PC has  the ability to be  front-ended by SEAdog in  where SEAdog will
  6504.     turn over  to it a live,  active modem with  a caller waiting.  RBBS-PC has
  6505.     been  modified to accept two  additional command line  parameters which can
  6506.     alter  the defaults in RBBS-PC.DEF. Currently,  that is the extent to which
  6507.     RBBS-PC and  SEAdog can be used  together. The Fido message  base format is
  6508.     not yet compatible with RBBS-PC.
  6509.  
  6510.  
  6511.  
  6512.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     S-2
  6513.  
  6514.  
  6515.     It is  assumed that you are reading this because  you are familiar with the
  6516.     RBBS-PC and have  at least a  minimum knowledge of  FidoNet and FidoMail.
  6517.     Another  assumption  is  that  you have  RBBS-PC  up  and  running on  your
  6518.     computer.   The easiest way to  get all two programs working together is to
  6519.     have each  running from it's own  subdirectory on your hard  disk.  That'll
  6520.     make maintenance of RBBS-PC  and SEAdog specific files much  easier. Follow
  6521.     the instructions  in the SEAdog manual  to install it, if  that hasn't been
  6522.     done yet. Once installed all SEAdog files will be in  a subdirectory called
  6523.     \MAIL.  Make  any required modifications to your CONFIG.SYS as suggested in
  6524.     the SEAdog manual.
  6525.  
  6526.     If your using DOS  3.xx, and don't  use the DOS  SUBST command, you  should
  6527.     consider doing  so.   SUBST is a  DOS external command  that allows  you to
  6528.     SUBSTitute  a drive  letter for  a complete  subdirectory name.  Using this
  6529.     command will make reprogramming RBBS-PC's configuration file easier.
  6530.  
  6531.     This appendix  assumes  that all  the SEAdog  Files are  in a  subdirectory
  6532.     called  C:\MAIL  and those for  RBBS-PC are in a directory called  C:\RBBS.
  6533.     A further  assumption that  is  made is  that a  new drive    "H:" will  be
  6534.     SUBSTitued for the  C:\RBBS subdirectory.
  6535.  
  6536.     Since  SEAdog will be  in controls most  of the time,  the entire operation
  6537.     should use SEAdog's  C:\MAIL  directory as the default.
  6538.  
  6539.     Now load and  run CONFIG.EXE  and reprogram it's  configuration to  reflect
  6540.     that all RBBS's help, menu and system  files are located on the "H:" drive.
  6541.     Remember  the SUBSTitute command?    You  can use it  to replace those long
  6542.     subdirectory names for download  and upload files.  SPECIAL  ATTENTION must
  6543.     be paid to CONFIG.EXE's parameter 163. This parameter MUST be set to SYSTEM
  6544.     recycle. Not  doing so will cause  RBBS-PC to reload itself  after a caller
  6545.     has hung up or dropped carrier and not pass control back to SEAdog.
  6546.  
  6547.     The SEAdog manual  explains various commands  that must  be placed in  it's
  6548.     configuration  file called  CONFIG.DOG.   Among those that are considered a
  6549.     minimum, you should include at least the following....
  6550.  
  6551.     banner   Please stby,  15 secs to load  RBBS-PC
  6552.     bbs      H:RBBS    *T *B
  6553.     event    B  all   4:30  5:00                    ;Local collections
  6554.     event    A  all   5:00  6:00                    ;National FidoMail Window
  6555.     event    C  all   6:00  7:00                    ;Local distributions
  6556.     event    S  all   7:00  4:00 Crash Dynamic BBS  ;CRASH mail if not in RBBS
  6557.     event   X10 all   7:00  7:05                    ;Reboot Computer
  6558.  
  6559.     The  banner   statement should be used so that human callers know why there
  6560.     is a  delay from  the time  they connect  until the time  they see  RBBS-PC
  6561.     display it's welcome  message.  The   bbs command  tells SEAdog what  batch
  6562.     file to run when  passing control to RBBS.  *T and *B  must be in the order
  6563.     presented above  in for RBBS-PC to pickup and use them correctly. They pass
  6564.     the time remaining to the next scheduled SEAdog event and the baud rate the
  6565.     caller came  on with.   Event statements tell  SEAdog how to  schedule it's
  6566.     time during  the day. The  above example conforms  to the FidoNet  national
  6567.     mails hours as of  26 July 1987 and allows crash mail  and bbs operation at
  6568.     all others.
  6569.  
  6570.     Since the SEAdog   *P  parameter in the  bbs   command isn't used, you must
  6571.     insure that the comm ports used for RBBS-PC and SEAdog are the same.
  6572.  
  6573.  
  6574.  
  6575.     APPENDIX S -- Using RBBS-PC with SEAdog to Access FIDO-NET              S-3
  6576.  
  6577.  
  6578.     One  of  the more  confusing  decisions  will be  how  to  setup the  modem
  6579.     switches.   Without going into it too deeply, keep in mind that SEAdog will
  6580.     be controlling the modem and passing an active modem on to RBBS-PC.
  6581.  
  6582.     Additionally,  you could have your SEAdog upload and download areas overlap
  6583.     those of RBBS-PC.
  6584.  
  6585.     When SEAdog determines that a non SEAdog or Fido system has called, it runs
  6586.     a second  copy of DOS,  then optionally loads  and runs RBBS-PC  via direct
  6587.     command or  from a batch  file, passing the  speed that  the comm port  was
  6588.     opened at, and the time remaining to the next scheduled SEAdog mailer event
  6589.     as in the following example:
  6590.  
  6591.     SEAdog calls RBBS-PC via a batch file called RBBS.BAT
  6592.  
  6593.        C>RBBS-PC 1 H:RBBS-PC.DEF /%1 /%2
  6594.          |       | |              |   |> Baud Rate
  6595.          |       | |              |
  6596.          |       | |              |
  6597.          |       | |              |> Limits the amount of time the user has
  6598.          |       | | this session if and only if the time is
  6599.          |       | |less then the time per session specified |||in CONFIG.EXE.
  6600.          |       | |> RBBS-PC default file filespec  (Optional)
  6601.          |       |> Node number that the specified .DEF file applies to.
  6602.          |       |(Optional)
  6603.          |> The name of the RBBS-PC program.
  6604.  
  6605.     With  a properly configured  RBBS.BAT batch  file, you  can retain  all the
  6606.     functions  of  RBBS-PC to  include  DOORS and  dropping  to  DOS via  SysOp
  6607.     function #7. See the sample batch files at the end of this file.
  6608.  
  6609.     Experience has shown that the best way  to run RBBS-PC and SEAdog is with a
  6610.     batch file, where  SEAdog having  determined that  a non  mailer system  is
  6611.     waiting to use the bbs  will load and run a batch file  that controls RBBS-
  6612.     PC's operation as opposed  to SEAdog calling  RBBS-PC directly.  Two  batch
  6613.     files are used, one to control SEAdog and one to control RBBS.
  6614.  
  6615.     A minimum batch file is suggested in the SEAdog manual. In addition to what
  6616.     ever you place in it, add the following statements to it.
  6617.  
  6618.       If Exist H:RCTTY.BAT Del H:RCTTY.BAT
  6619.  
  6620.     This line should be the  first.  This statement simply helps  ensure proper
  6621.     operation of RBBS-PC if you use SysOp function #7  or DOORS.
  6622.      If Errorlevel 10 Goto REBOOT:
  6623.  
  6624.     This line goes after the line that contains the call to the MAILER program.
  6625.  
  6626.     REBOOT:
  6627.      IPL
  6628.  
  6629.     This  line reboots  the computer  every morning  according to  event listed
  6630.     above. Due do unexplained loss of  memory when running SEAdog and  RBBS-PC,
  6631.     is  safe to program in a scheduled  rebooting of the computer to regain any
  6632.     loss of memory. This line should be near the last and programmed around for
  6633.     normal operations
  6634.  
  6635.     **  Ex RBBS batch file  **
  6636.  
  6637.  
  6638.  
  6639.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     S-4
  6640.  
  6641.  
  6642.       Echo Off
  6643.     :LOOP
  6644.       C:
  6645.       Cd \MAIL
  6646.       If Not Exist H:RCTTY.BAT Goto LOCAL
  6647.       H:WATCHDG1 OFF
  6648.       Del H:RCTTY.BAT
  6649.       H:TESTRBBS 1 H:RBBS-PC.DEF
  6650.       Goto REMOTE
  6651.  
  6652.     :LOCAL
  6653.       H:TESTRBBS 1 H:RBBS-PC.DEF /%1 /%2
  6654.  
  6655.     :REMOTE
  6656.       If Not Exist H:RCTTY.BAT GOTO EXIT
  6657.       H:WATCHDG1 ON
  6658.       H:RCTTY.BAT
  6659.  
  6660.     :EXIT
  6661.  
  6662.     As mentioned  above, this doc  file isn't  intended to make  you completely
  6663.     knowledgeable on how to interface RBBS-PC and SEAdog, only get you started.
  6664.     How you set up your RBBS-PC and SEAdog batch files is limited only  by your
  6665.     ability and imagination.   After gaining more experience, you'll  find that
  6666.     you can automate a lot of the  RBBS-PC and SEAdog maintenance.
  6667.  
  6668.     The  above  reflects  the creative  things  that  Kim  Wells, Fido  Address
  6669.     109/652, has done with  interfacing RBBS-PC with the Fido  net-mail system.
  6670.     If you need further help, contact Kim Wells's RBBS-PC  via his data line at
  6671.     (301) 599-7651/7652.
  6672.  
  6673.  
  6674.  
  6675.     APPENDIX T -- DOS Limitation on Running Programs Remotely               T-1
  6676.  
  6677.  
  6678.     APPENDIX T -- DOS Limitation on Running Programs Remotely
  6679.     ---------------------------------------------------------
  6680.     When accessing your PC via a communications port, the carrier detect signal
  6681.     tells the PC that you are on-line.  DOS's major limitation is that there is
  6682.     no way  to tell  DOS  to monitor  carrier detect  automatically   when  the
  6683.     standard input and output is transferred to a  communication port (i.e. via
  6684.     the  CTTY command).    RBBS-PC makes sure  that the carrier  is not dropped
  6685.     when a user exits to DOS either via the  "DOORS" option or using the remote
  6686.     SysOp function 7.  However, it is the  SysOp's  responsibility  to   insure
  6687.     that   whatever programs  are invoked after  leaving RBBS-PC   perform  all
  6688.     the  necessary  functions  to maintain the communications session and, when
  6689.     exiting to return to RBBS-PC, that the carrier  is  "NOT"  dropped.
  6690.  
  6691.     Most application programs  (i.e. databases,  etc.) are not  designed to  be
  6692.     controlled  by users  accessing  them from  a  communications port.    This
  6693.     problem is solved when a function is invoked that:
  6694.  
  6695.     1. Checks   to  see  if the standard input  and output console   have  been
  6696.     assigned to an auxiliary console such as a communication port.
  6697.     2.  If condition 1 is true,  checks to see if the  carrier detect signal is
  6698.     lost  by  intercepting  each  interrupt from  the  communication  port  the
  6699.     auxiliary console has been assigned to.
  6700.     3. If BOTH conditions  1 and 2 are true,  this function would cause  DOS to
  6701.     return to the standard screen and keyboard for its operations AND  continue
  6702.     processing  whatever batch file that had been executing.
  6703.  
  6704.     Such a function (or device driver) would provide a "fail safe" feature that
  6705.     would allow users to  exit  RBBS-PC  to  use   whatever  other software the
  6706.     SysOp chose to  make  available   (i.e.   relational databases for  complex
  6707.     inquiries   --  bibliographic,    sports,    games,    etc.).    For  those
  6708.     anticipating using  RBBS-PC's "doors"  or exiting  to DOS  when  you are  a
  6709.     remote  SysOp, you are strongly encouraged to consider using the "watchdog"
  6710.     utility  program available on many  bulletin board systems  under such file
  6711.     names  as  WATCHDOG.COM,  WATCHDOG.ASM,  WATCHDOG.DOC,   WATCHDOG.EXE  that
  6712.     monitors the communication port for you and reboots your system if  carrier
  6713.     drops.   If you don't use a program  like WATCHDOG and accidentally hang up
  6714.     while in a "door"  or in DOS, you system  will remain "hung" until  you can
  6715.     manually reboot it.
  6716.  
  6717.     Programs that utilize the PC's built in video memory (such as the IBM BASIC
  6718.     interpreter or WordStar when  it writes to the 25th line) need to have such
  6719.     I/O redirected in a special way  to a remote users terminal.  Additionally,
  6720.     if the  I/O is redirected to  the communications port, the  terminal on the
  6721.     other end must  have a "cursor"  that can be  sent the appropriate  command
  6722.     sequence  to move  it  around on  the remote  users terminal  as necessary.
  6723.     Without this capability, programs  made  available  through "doors" must be
  6724.     line-at-a-time  programs.    This of  course  excludes    programs such  as
  6725.     WordStar, Lotus/123 etc.
  6726.  
  6727.     If  you aren't  technically inclined and  want to  use RBBS-PC  "doors",  I
  6728.     suggest  you consider only using programs that have been explicitly written
  6729.     to overcome the above  two DOS limitations.  Applications  that don't write
  6730.     directly to the video  memory of the PC can  be used safely as a  "door" as
  6731.     long as a "watchdog" type program is also used.
  6732.  
  6733.  
  6734.  
  6735.     APPENDIX U -- Recompiling RBBS-PC to Reduce Memory Required             U-1
  6736.  
  6737.  
  6738.     APPENDIX U -- Recompiling RBBS-PC to Reduce Memory Required
  6739.     -----------------------------------------------------------
  6740.     RBBS-PC is  continually being enhanced with new features.  As new functions
  6741.     and   capabilities   are   added,  RBBS-PC's   memory   requirements   grow
  6742.     correspondingly.  In order to continue  RBBS-PC's growth and still meet the
  6743.     memory constraints imposed  on SysOps with only 640K of  memory who wish to
  6744.     run  two copies of  RBBS-PC,  RBBS-PC  source code can  be "mite-sized" and
  6745.     recompiled  to fit  within whatever  memory constraints  a SysOp  must deal
  6746.     with.
  6747.  
  6748.     SysOps can apply .MRG files against the  unmodified RBBS-PC source code and
  6749.     elect  to eliminate RBBS-PC features not being used and eliminate redundant
  6750.     code (typically  the BASIC  source code  that replicates  assembly language
  6751.     routines).  RBBS-PC has a companion  "mite-size" set of  files contained in
  6752.     the file RBBS-LIT.ZIP.
  6753.  
  6754.     In  order to recompile and "mite-size" RBBS-PC, within the same environment
  6755.     in which the SysOp has successfully recompiled the current release of RBBS-
  6756.     PC, the SysOp must also have the following files:
  6757.  
  6758.     BLED.EXE    --      The Batch  Line EDitor by  Ken Goosens (version  2.2 or
  6759.                         greater).
  6760.  
  6761.     MAKELIT.BAT  --     The BATch  file that  invokes BLED.EXE and  applies the
  6762.                         necessary  files to  the unmodified  source code.  This
  6763.                         file should  be modified  by putting in  the drive/path
  6764.                         for  the original code (the  first parm to  BLED).  The
  6765.                         lines  to be modified all begin with "*$", which is the
  6766.                         default for  a BLED metacommand.    The lines beginning
  6767.                         with "* "  are BLED  comments, which are  ignored in  a
  6768.                         merge.
  6769.  
  6770.     SETLIT.INC   --     The file  through which  the SysOp selects  the RBBS-PC
  6771.                         features that are not needed.  The directions for doing
  6772.                         this  are  contained within  this  file.  A feature  is
  6773.                         typically  removed   by  setting  a   BLED  metacommand
  6774.                         variable to "OFF", e.g. BAUD450  to "OFF" to save  code
  6775.                         by excluding  the RBBS-PC feature that  allows 300 baud
  6776.                         uses to  increase their baud rate to 450 while on-line.
  6777.                         To exclude  RBBS-PC LIBRARY  subsystem  set LIBRARY  to
  6778.                         "OFF".
  6779.  
  6780.     RBBSLIT.MRG  --     The fundamental BLED merge for RBBS-PC.BAS
  6781.     SUBxLIT.MRG  --     The fundamental BLED merge for various RBBSSUB's.  Each
  6782.                         reads  in (includes)  the  file SETLIT.INC  to set  the
  6783.                         metavariables used by BLED.  BLED then  uses the values
  6784.                         to determines what merges to process.
  6785.  
  6786.     *.LIT        --     .MRG files that eliminate RBBS-PC features.
  6787.  
  6788.     The procedure for "mite-size"ing RBBS-PC is as follows:
  6789.  
  6790.     1.  Select the RBBS-PC features not required for your needs and  modify the
  6791.     file SETLIT.INC.
  6792.  
  6793.     2.  Change MAKELIT.BAT to reflect your PC's subdirectories.
  6794.  
  6795.     3.  Make sure RBBSSUB1.BAS is in the subdirectory you will run in.
  6796.  
  6797.  
  6798.  
  6799.     RBBS-PC 17.3A            TECHNICAL REFERENCE MANUAL                     U-2
  6800.  
  6801.  
  6802.     4.  Execute the MAKELIT.BAT file.  Do not continue if errors are found.
  6803.  
  6804.     5.   Recompile the "mite-sized" RBBS-PC source code.  Remember, this "mite-
  6805.     sized" source code and the RBBS-PC.EXE file created from it my only be used
  6806.     by you and not distributed to others.
  6807.  
  6808.          Some comments on the various Microsoft QuickBASIC compilers:
  6809.               QuickBASIC Version 1.02 produces the smallest code.
  6810.               QuickBASIC Version 2.01 produces the next smallest code.
  6811.               QuickBASIC Version 3.00 produces the largest code.
  6812.               QuickBASIC Version 4.5 produces code smaller than
  6813.                     3.00) but is not as reliable
  6814.  
  6815.          Never LINK with the /E option.
  6816.  
  6817.     6.  Re-run CONFIG and disable the RBBS-PC features that were deleted in the
  6818.     "mite-sized"  version that was created in steps  1 through 5 (i.e. take out
  6819.     the "A" command if questionnaires were disabled).
  6820.  
  6821.     Please realize  that there  is no way  that the "mite-sized"  variations of
  6822.     RBBS-PC can  be supported.  The  many different PC configurations  plus the
  6823.     multitude  of  combinations   of  RBBS-PC  features  are   what  make  this
  6824.     impossible.  However, we will do our best.
  6825.  
  6826.     Please report any problems with BLED or the *.LIT merges to Ken Goosens via
  6827.     his RBBS-PC data number -- (703) 978-6360.
  6828.  
  6829.  
  6830.  
  6831.                                        INDEX
  6832.  
  6833.     .MRG  1-4                               NEWUSER file  6-9, 10-9
  6834.     99.DIR  6-5                             NODE?WRK  6-5
  6835.     ANSI  7-25                              NODE?WRK file  7-27
  6836.     ANSI commands  7-21                     PASSWRDS file  6-9, 9-2, 10-15
  6837.     ARCWORK?.DEF  6-4                       PRELOG file  6-9, 10-11
  6838.     ASCII upload  10-26                     PRIV.DEF  6-9, 10-15
  6839.     AUTOEXEC.BAT  13-1                      PROTO.DEF  6-3, 10-24, 20-1
  6840.     AUTOPAGE.DEF  6-6, 7-26, 10-3           PUI  7-4
  6841.     BLED  1-4                                    use of color in  7-24
  6842.     BULLET file  6-6                        QMXFER.ERR  6-5
  6843.     Bulletins                               Questionnaires  6-2, 10-9, 19-1
  6844.          BULLET.FCK  6-4                    RBBS.BAT  10-12, 13-1
  6845.     CALLERS file  6-4, 10-11                RBBS?F1.DEF  6-5
  6846.     Colorization  7-24                      RBBS?PC.DEF  6-5
  6847.     COMMENTS file  6-4, 10-11               RBBS-CDR.DEF  6-9
  6848.     CONFENCE file  6-6, 10-9                RBBS-Net  4-1
  6849.     CONFMAIL.DEF  6-7, 10-12                RBBS-PC in a Box  4-1
  6850.     CPCUG  1-1                              RBBS-REG.DEF  6-9, 10-11
  6851.     DIR.CAT  10-22                          RECONFIG.EXE  2-7
  6852.     DIR.CDR  6-7                            RelayNet  4-1
  6853.     DIR.DIR  6-7                            Ring-Back  10-23, E-1
  6854.     DK*.ARC  6-5                            SECVIO.HLP  10-16
  6855.     DOORS.DEF  6-5, 10-13, 14-4             SHARE.EXE  P-1
  6856.     DORINFO?.DEF  6-5                       SmartText  7-21
  6857.     DOUT?.DEF  6-5                          Subscriptions  9-1, 10-6
  6858.     DRST?.DEF  6-5                          SysOp  1-1
  6859.     DTR  10-24                              TDD  10-23, 10-26, E-1
  6860.     EPILOG.DEF  6-7, 7-29, 10-11            templates  20-4
  6861.     FFS  10-26                                   in DOORs  14-4
  6862.     File Locking  6-1                       TRASHCAN file  6-9, 10-10
  6863.     FILESEC file  6-7, 10-15                USERS file  6-4, 10-11, 10-18
  6864.     Flow control                            Userware  1-1
  6865.          CTS  10-25                         Version numbers  1-4
  6866.          RTS  10-25                         WELCOME file  6-9, 10-9
  6867.          XON/XOFF  10-25                    ZIPTV  7-28
  6868.     FMS  10-21
  6869.          use of color in  7-25
  6870.     Graphics  6-6
  6871.     HELP files  6-7
  6872.          FILE.HLP  6-8
  6873.          HELP03  6-7
  6874.          HELP04  6-7
  6875.          HELP09  6-7
  6876.          LIBR.HLP  6-8
  6877.          MAIN.HLP  6-8
  6878.          RGXPIRD.HLP  6-8, 9-1, 10-6
  6879.          RGXPIRE.HLP  6-8, 9-1, 10-6
  6880.          SECVIO.HLP  6-8
  6881.          SMARTTXT.HLP  6-8
  6882.          UPCAT.HLP  6-8, 10-9
  6883.          UTIL.HLP  6-8
  6884.     LG*.DEF  6-8
  6885.     Library Sub-System  6-7
  6886.     MAIN.PUI  6-9, 10-9
  6887.     MAINM.DEF  6-3
  6888.     MAINU.DEF  6-4
  6889.     MENU files  6-9, 7-1, 10-9
  6890.     MESSAGES file  6-3, 10-11, 10-18
  6891.     NETBIOS  P-1
  6892.     ================= END OF RBBS-PC 17.3A DOCUMENTATION ==================
  6893.  
  6894.